构建生态化
分布式数据库架构体系
About 自我介绍
陶勇
Index 内容概要
• 分布式数据库解决方案 @ Alibaba B2B
– 分布式数据存储与访问
• Cobar
– 准实时增量数据获取与消费
• Erosa/Eromanga
– 多维度数据同步与网站镜像
• Otter
• 构建分布式数据库生态架构 @ Alibaba B2B
– 全站数据架构
– 思考与展望
Keywords 关键词
MySQL protocol
Schema垂直拆分
Table水平拆分
实时日志解析
事务顺序
实时镜像 双向同步
同步事务支持
Global ID
Global Failover
分布式数据库解决方案
分布式数据存储与访问 Cobar
遇到的问题 - 2008
Oracle
50% CPU/IO
Oracle:
index>100G
产品表上亿条
上万TPS
Oracle
4000连接
Sharding
数据分片
(08-10)
遇到的问题 - 2010
(10-11)
现在 ()
细节:线程复用模型
细节:事务、ResultSet
特性
SQL
事务
线性扩展
性能
QOS
按schema权
重进行资源隔离
NIO
&
Streaming
ResultSet
mysql
语法支持
mysql协议级
事务支持
连接绑定的
事务支持
对称集群
⼀一些数据
• 20+ Cobar
• 线上高峰期 4-5w TPS,单机性能 10w TPS
• 15并发以上,整体性能超过直接访问mysql
• 支持mysql 全部DML和部分DDL语法
分布式数据库解决方案
准实时增量数据获取与消费 E&E
遇到的问题
产品实时索引 反馈及时回复
订单及时通知
实时报表
网站
cache刷新
实时透明的获
取数据库变更
准实时增量数据获取与消费
• 以前的做法
– DB Trigger
– Dump table
– Application MQ
• 问题
– 运维困难
– 数据库、网络瞬时压力大
– 业务侵入性强
整体架构
细节
• 数据解析
– oracle : redolog parser
• Archive log ~ 2min
• Online log < 10ms
• Open column supplemental log
– mysql : binlog parser
• COM_BINLOG_DUMP
• 数据消费
– 对称集群
– Data cursor : ZooKeeper
特性
实时性
可用性
扩展性
事务性
完整性
忠实反映数
据库数据变更
严格按照事
务顺序
高峰期<1s
平时30ms
N份拷贝
可配置
对称集群
分布式数据库解决方案
多维度数据同步与网站镜像 Otter
遇到的问题
数据关联图片
同步
异构事务支持
Mixed O+M
数据迁移
9i -> 10g
O -> M
Encoding
网站实时镜像 A-
A
网站
异地容灾
数据实时同步
整体架构
细节
• 数据同步
– 自定义字段过滤
– 自定义文件同步逻辑
– 按事务表并发加载
– 按表PK hash并发加载
• 数据冲突
– 实时字段级冲突合并
– 冲突判断及解决
现有的应用场景
• 数据库
– 备份:多master -> 单slaver
– 异构迁移、跨版本迁移
– Oracle Active-Active
• 网站容灾
– 容灾备份
– 读写分离
• 网站镜像
– 双向读写
– 按字段同步
– 按事务并发同步
分布式数据库解决方案
构建分布式数据库生态架构 Ecosystem
遇到的问题
Failover
前后⼀一致性
Cobar后端
mysql动态扩容
网站镜像mysql
自增主键问题
Cobar集群
负载均衡
Cobar
透明升级 LSD Ecosystem
分布式数据库架构生态体系
Ecosystem
Large Scale Data Ecosystem
Erosa
数据解析
Eromanga
数据消费
Cobar
数据存储
Otter
数据同步
前端到后端的整体解决方案
构建数据流转的生态架构
整体架构
思考与展望
• 产品架构闭环
– Under constructing
• OLTP & OLAP
• NoSQL数据库
• 软硬结合
– 单机多实例
– 单机高性能
MySQL优化
单机多实例
单机高性能
• 存储技术飞速发展,IO不再是瓶颈
• MySQL对多核CPU利用率低
• RAID:BBWC/Fastpath
• Fusionio
• Flashcache
• Semi-Sync
Q&A
Thanks!
No best, only the most suitable