All Projects → XiaoMi → Gaea

XiaoMi / Gaea

Licence: apache-2.0
Gaea is a mysql proxy, it's developed by xiaomi b2c-dev team.

Programming Languages

go
31211 projects - #10 most used programming language
Yacc
648 projects

Projects that are alternatives of or similar to Gaea

Shardingsphere Elasticjob
Distributed scheduled job framework
Stars: ✭ 7,369 (+247.1%)
Mutual labels:  middleware, database
Gin Boilerplate
The fastest way to deploy a restful api's with Gin Framework with a structured project that defaults to PostgreSQL database and JWT authentication middleware stored in Redis
Stars: ✭ 559 (-73.67%)
Mutual labels:  middleware, database
Rexlin600.github.io
系列博客、涵盖领域广、不定时更新、欢迎加入
Stars: ✭ 102 (-95.2%)
Mutual labels:  middleware, database
Learning laravel kernel
Laravel核心代码学习
Stars: ✭ 789 (-62.84%)
Mutual labels:  middleware, database
Cetus
Cetus is a high performance middleware that provides transparent routing between your application and any backend MySQL Servers.
Stars: ✭ 1,199 (-43.52%)
Mutual labels:  middleware, database
Backoffice Administration
Stars: ✭ 89 (-95.81%)
Mutual labels:  middleware, database
Silicon
A high performance, middleware oriented C++14 http web framework please use matt-42/lithium instead
Stars: ✭ 1,721 (-18.94%)
Mutual labels:  middleware, database
Chunked
Chunkwise Text-file Processing for 'dplyr'
Stars: ✭ 153 (-92.79%)
Mutual labels:  database
Redbase
A mini database implementation.
Stars: ✭ 153 (-92.79%)
Mutual labels:  database
Hbase Connectors
Apache HBase Connectors
Stars: ✭ 153 (-92.79%)
Mutual labels:  database
H2gis
A spatial extension of the H2 database.
Stars: ✭ 152 (-92.84%)
Mutual labels:  database
Quill
Compile-time Language Integrated Queries for Scala
Stars: ✭ 1,998 (-5.89%)
Mutual labels:  database
Realm Kotlin
Kotlin Multiplatform and Android SDK for the Realm Mobile Database: Build Better Apps Faster.
Stars: ✭ 156 (-92.65%)
Mutual labels:  database
Myproxy
A sharding proxy for MYSQL databases
Stars: ✭ 153 (-92.79%)
Mutual labels:  database
Ginrpc
gin auto binding,grpc, and annotated route,gin 注解路由, grpc,自动参数绑定工具
Stars: ✭ 157 (-92.6%)
Mutual labels:  middleware
Norm
Access a database in one line of code.
Stars: ✭ 152 (-92.84%)
Mutual labels:  database
Justpersist
JustPersist is the easiest and safest way to do persistence on iOS with Core Data support out of the box. It also allows you to migrate to any other persistence framework with minimal effort.
Stars: ✭ 157 (-92.6%)
Mutual labels:  database
Pygm
🐍 Python library implementing sorted containers with state-of-the-art query performance and compressed memory usage
Stars: ✭ 156 (-92.65%)
Mutual labels:  database
Fwtr
Open Database of Firmware Test Results
Stars: ✭ 154 (-92.75%)
Mutual labels:  database
Us Car Models Data
This repo contains approximately 10K car models data that are available in the United States between 1992-2020
Stars: ✭ 154 (-92.75%)
Mutual labels:  database

LICENSE Build Status Go Report Card

简介

Gaea是小米中国区电商研发部研发的基于mysql协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单、社区、活动等多个业务。Gaea支持分库分表、sql路由、读写分离等基本特性,更多详细功能可以参照下面的功能列表。其中分库分表方案兼容了mycat和kingshard两个项目的路由方式。Gaea在设计、实现阶段参照了mycat、kingshard和vitess,并使用tidb parser作为内置的sql parser,在此表达诚挚感谢。为了方便使用和学习Gaea,我们也提供了详细的使用和设计文档,也欢迎大家多多参与。

功能列表

基础功能

  • 多集群
  • 多租户
  • SQL透明转发
  • 慢SQL指纹
  • 错误SQL指纹
  • 注解路由
  • 慢日志
  • 读写分离,从库负载均衡
  • 自定义SQL拦截与过滤
  • 连接池
  • 配置热加载
  • IP/IP段白名单
  • 全局序列号

分库、分表功能

  • 分库: 支持mycat分库方式
  • 分表: 支持kingshard分表方式
  • 聚合函数: 支持max、min、sum、count、group by、order by等
  • join: 支持分片表和全局表的join、支持多个分片表但是路由规则相同的join

架构图

gaea架构图

集群部署图

gaea集群部署图

如上图所示, 部署一套gaea-cc和etcd可用来管理多套gaea集群, 负责集群内namespace配置的增删改查. gaea-cc的HTTP接口文档

安装使用

设计与实现

Roadmap

  • 支持配置加密存储,开关
  • 支持执行计划缓存
  • 支持事务追踪
  • 支持二级索引
  • 支持分布式事务
  • 支持平滑的扩容、缩容
  • 后端连接池优化 (按照请求时间排队)

自有开发模块

  • backend
  • cmd
  • log
  • models
  • proxy/plan
  • proxy/router(kingshard路由方式源自kingshard项目本身)
  • proxy/sequence
  • server

外部模块

  • mysql(google vitess、tidb、kingshard都有引入)
  • parser(tidb)
  • stats(google vitess,打点统计)
  • util(混合)

社区

gitter

Gitter

钉钉

钉钉

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].