Skip to content
Gaea is a mysql proxy, it's developed by xiaomi b2c-dev team.
Branch: master
Clone or download
cx3ptr Merge pull request #31 from cx3ptr/master
 optimize com_quit by write nothing to client to avoid client RST
Latest commit 6fbc06d Jun 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend first code commit May 24, 2019
cc add list namespace interface, return names of all namespace May 30, 2019
cmd print build info to terminal by input flag Jun 4, 2019
core add copyrights of version.go Jun 4, 2019
docs Update connection-pool.md Jun 3, 2019
etc add conf template of shard namespace May 31, 2019
log first code commit May 24, 2019
misc first code commit May 24, 2019
models remove encrypt key to server and add unit tests of namespace encrypt May 29, 2019
mysql first code commit May 24, 2019
parser feat: delete TestTraceAndLocation May 27, 2019
proxy optimize com_quit by write nothing to client to avoid client RST Jun 6, 2019
stats first code commit May 24, 2019
util remove useless code Jun 12, 2019
.gitignore update .gitignore May 30, 2019
.travis.yml
LICENSE first code commit May 24, 2019
Makefile feat: use -ldflags to pass through version and compiler infomation du… May 30, 2019
README.md add roadmap May 29, 2019
gen_ldflags.sh feat: use -ldflags to pass through version and compiler infomation du… May 30, 2019
gen_version.sh feat: use -ldflags to pass through version and compiler infomation du… May 30, 2019
genver.sh first code commit May 24, 2019
go.mod feat: 更新quickstart May 29, 2019
go.sum feat: 更新quickstart May 29, 2019

README.md

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架构图

安装使用

设计与实现

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

微信群

微信

You can’t perform that action at this time.