海量数据场景下OceanBase的分布式落地实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 海量数据场景下OceanBase的分布式落地实践
孟磊(亦年)
yinian.ml@oceanbase.com
2022-6
2. OceanBase:源自蚂蚁 · 成于中国 · 服务世界
100 % 1 完全自主知识产权
350+ 核心专利 NO.1
全球唯一经过大规模金融场景
长时间考验的分布式数据库 数据库 TPC-C
测试排名世界第一
300w
10000+
代码开源
opencore
人才认证
400+客户和合作伙伴
1.0 时代:坚定走向分布式架构
2010
2010
2013
2013
NO.2
数据库 TPC-H 30T
测试排名世界第二
2.0 时代:原生分布式数据库
2014
2014 2016
2016 2017
2017 2019
2019
3.0 时代:混合引擎、混合部署
2020
2020
2021
2021
产品立项 扩大使用范围 核心交易上线 全业务覆盖 多家金融客户 打破世界纪录 独立商业化 规模化推广
第一个用户 多个业务系统 支付宝交易 核心账务 互联网 金融级核心业务 核心交易支付 核心系统 Oracle 兼容
公有云服务
TPC-C 6088万 HTAP 引擎
TPC-C 7.07亿 TPC-H 1526万
社区版发布
试点海外客户
3. 蚂蚁集团的数据库发展
商业数据库时代
开源数据时代
自研数据库时代
Driver/Proxy
middleware
AZ1
AZ2
业务水平折分
分库分表
垂直扩展
买性能更好的主机/存储/
数据库性能更好的机器
(硬件红利)
去单点
去热点
AZ3
原生分布式数
据库
高扩展
同一个库中不同业务折到
不同实例中,关键表做重
直/水平拆分
高性能
对业务透明,自动负载,
高扩展,高可用,高性
能,高压缩比
4. 产品架构
Paxos协议 + 无共享架构 + 分区级高可用
•
多副本: 一般部署为三/五个Zone,每个Zone由多个节点
(OBServer)组成
•
全对等节点: 每个节点均有自己的SQL引擎和存储引擎,各自
管理不同的数据分区,完全对等
•
无共享: 数据分布在各个节点上,不基于任何共享存储结构
(share-nothing)
•
分区级可用性: 可靠性与扩展性的基本单元,自动流量路由、
负载均衡、故障转移
•
高可用 + 强一致: 多副本 + Paxos分布式选举协议的金融级
实现, 保证数据(日志)持久化到多数派节点
5. 1.部署架构-蚂蚁单元化
OB5-1
OB5-2
OB5
UID 99
分库分表
OB5-2
OB5-3
p1 p2 p3 p4
p1 p2 p3 p4
p1 p3 p3 p4
-OB的分区级打散做到应用无感扩容
-分区聚合最大化单机性能
OB分区
6. 1.部署架构-外部客户
两地三中心5副本
单元化
Region1
OBServer OBServer OBServer OBServer OBServer
P1 P1 P1 P1 P1
P2 P2 P2 P2 P2
P3 P3 P3 P3 P3
P4 P4 P4 P4 P4
ZONE_3 ZONE_4 ZONE_5
ZONE_1
ZONE_2
IDC1
✓ 多地多活(3地5中心,2地4中心等)
✓ 细粒度流量调拨
✓ 城市级容灾
Region2
IDC2
✓ 两地三中心5副本
✓ 单机房故障RPO=0, RTO<30s
✓ 城市级容灾
IDC3
7. 1.部署架构-外部客户
同城/同机房3副本
两级房主备集群
Region1
Region1
Region2
OBServer OBServer OBServer OBServer OBServer OBServer OBServer
P1 P1 P1 P1 P1 P1 P1
P2 P2 P2 P2 P2 P2 P2
P3 P3 P3 P3 P3 P3 P3
P4 P4 P4 P4 P4 P4 P4
ZONE_3 ZONE_1 ZONE_3 ZONE_5
ZONE_1
IDC1
ZONE_2
IDC2
IDC3
✓ 机房级容灾
✓ 单机房故障RPO=0, RTO<30s
✓ 日志副本仲裁
ZONE_2
IDC1
✓ 物理主备集群
✓ 最大保护/最大可用/最大性能
IDC2
8. 2.极致弹性-双十一大促-常态
图例说明:
地域 城市1
机房 机房1
Follower
Leader
ReadOnly
云机房
城市3
城市2
机房2
线下机房
LogOnly
机房3
机房4
机房5
机房6
机房7
机房8
UID 00 A0 A0 A0
UID 01 A1 A1 A1
UID 02 A2 A2 A2
UID 03 A3 A3 A3
机房9
机房2、3、5、7为云机房
9. 2.极致弹性-双十一大促-大促态
图例说明:
地域
机房
Follower
Leader
城市1
城市1
机房1
机房3
A1
A1
机房5
A3
机房7
A0
A2
A3
机房6
机房8
机房9
A0
A1
UID 02
UID 03
机房4
A0
UID 00
UID 01
云机房
城市3
城市2
城市2
机房2
线下机房
LogOnly
ReadOnly
A2
A2
A3
机房2、3、5、7为云机房
10. 2.极致弹性-双十一大促-常态
图例说明:
地域 城市1
机房 机房1
Follower
Leader
ReadOnly
云机房
城市3
城市2
机房2
线下机房
LogOnly
机房3
机房4
机房5
机房6
机房7
机房8
UID 00 A0 A0 A0
UID 01 A1 A1 A1
UID 02 A2 A2 A2
UID 03 A3 A3 A3
机房9
机房2、3、5、7为云机房
11. 2.极致弹性-双十一大促-增加只读副本(业务无影响)
图例说明:
Follower
Leader
地域 城市1
机房 机房1
机房3
UID 00
UID 01
A1
A1
A1
机房4
A3
A3
A3
机房5
机房6
机房7
机房8
A0 A0 A0
A1 A1 A1
A2
UID 02
UID 03
云机房
城市3
城市2
机房2
线下机房
LogOnly
ReadOnly
A3
A2
A2
A3
A2
A2
机房9
A2
A3
机房2、3、5、7为云机房
12. 2.极致弹性-双十一大促-部分副本切换为Follower(业务无影响)
图例说明:
Follower
Leader
地域 城市1
机房 机房1
机房3
UID 00
UID 01
A1
A1
A1
机房4
A3
A3
A3
机房5
机房6
机房7
机房8
A0 A0 A0
A1 A1 A1
A2
UID 02
UID 03
云机房
城市3
城市2
机房2
线下机房
LogOnly
ReadOnly
A3
A2
A2
A3
A2
A2
机房9
A2
A3
机房2、3、5、7为云机房
13. 2.极致弹性-双十一大促-原有Follower切换为只读副本(分钟级跨城提
交)
图例说明:
Follower
Leader
地域 城市1
机房 机房1
机房3
UID 00
UID 01
A1
A1
A1
机房4
A3
A3
A3
机房5
机房6
机房7
机房8
A0 A0 A0
A1 A1 A1
A2
UID 02
UID 03
云机房
城市3
城市2
机房2
线下机房
LogOnly
ReadOnly
A3
A2
A2
A3
A2
A2
机房9
A2
A3
机房2、3、5、7为云机房
14. 2.极致弹性-双十一大促-Leader弹出
图例说明:
Follower
Leader
地域 城市1
机房 机房1
机房3
UID 00
UID 01
A1
A1
A1
机房4
A3
A3
A3
机房5
机房6
机房7
机房8
A0 A0 A0
A1 A1 A1
A2
UID 02
UID 03
云机房
城市3
城市2
机房2
线下机房
LogOnly
ReadOnly
A3
A2
A2
A3
A2
A2
机房9
A2
A3
机房2、3、5、7为云机房
15. 2.极致弹性-双十一大促-删除原有副本
图例说明:
地域
机房
Follower
Leader
城市1
城市1
机房1
机房3
A1
A1
机房5
A3
机房7
A0
A2
A3
机房6
机房8
机房9
A0
A1
UID 02
UID 03
机房4
A0
UID 00
UID 01
云机房
城市3
城市2
城市2
机房2
线下机房
LogOnly
ReadOnly
A2
A2
A3
机房2、3、5、7为云机房
16. 2.极致弹性-外部客户
17. 2.极致弹性-副本类型的活用
Region1
Region1
Region2
OBServer OBServer OBServer OBServer OBServer OBServer OBServer
P1 P1 P1 P1 P1 P1 P1
P2 P2 P2 P2 P2 P2 P2
P3 P3 P3 P3 P3 P3 P3
P4 P4 P4 P4 P4 P4 P4
ZONE_3 ZONE_1 ZONE_3 ZONE_4
IDC3 IDC1
ZONE_1
IDC1
ZONE_2
IDC2
日志副本仲裁
ZONE_2
IDC2
IDC3
只读副本读写分离
18. 3.资源调度-容器化
价
值
平铺
三层OB
调
度
IaaS
单机1%容灾
资源利用率
资源亲和
二层kipp 规则策略 调度dryrun
一层sigma 统一资源 资源生命周期
蚂蚁
金融云
无损压测
负载均衡
资源编排
Locality:分区&存储就近
调度管控
容量水位 资源plan
监控数据 资源标签
资源弹性 资源规划
阿里云 混合云
容器化、统一调度、混合云弹性架构、混合部署
19. 3.资源调度
OceanBase云管理平台(OCP)
OceanBase集群1
zone1
zone2
OceanBase集群2
zone1
zone3
zone2
zone3
资源池1 资源池1 资源池1 资源池4 资源池4 资源池4
CPU 内存 CPU 内存 CPU 内存 CPU 内存 CPU 内存 CPU 内存
租户1 租户1 租户4 租户4 租户4
租户1
资源池2 资源池3 资源池2 资源池3 资源池2 资源池3 资源池4 资源池4 资源池4
CPU 内存 CPU 内存 CPU 内存 CPU 内存 CPU 内存 CPU 内存 CPU 内存 CPU 内存 CPU 内存
租户2 租户3 租户3 租户2 租户4 租户4
租户2
租户3
租户4
集群物理隔离,租户物理隔离,租户级别Leader优先级设置
20. 4.平台智能化
SQL自动
优化
SQL
templeate
慢日志全量SQL流水
SQL 处理提取
全局分析
需优化的SQL集合
SQL Tuning Advisor
自动部署执行
量化跟踪
Continuous Adaptive self-tuning
RT急聚上升
异常自动
恢复
全局智能
调度
活跃会话数上升
CPU利用率上升
IO负载急剧上升
慢SQL数量上升
资源预测
数据采集
监控数据
部署约束
某SQL大量全扫描
Summarize
全局最优调度
生成全局最优迁移调度计划
限流生效
实例负载下降
业务恢复
自动SQL限流
Action
Planner
执行容器迁移
容器调度
21. 4.平台智能化
悬挂事务检测
SQL优化建议
可疑SQL/TopSQL/SlowSQL检测
执行计划/索引绑定
并行执行算子耗时分析
细粒度SQL熔断
死锁分析
22. 感谢聆听