Weitere ähnliche Inhalte
Ähnlich wie Ocean base 破解数据库高可用难题 (20)
Ocean base 破解数据库高可用难题
- 1. 志 (解 )孙 东 伦
xielun.szd@alipay.com
杭州
2014-6-15
破解数据 高可用库 难题
- 3. 高可用的数据 系库 统高可用的数据 系库 统
数据可用性:保 数据可证 访问
数据安全性:防止数据 失丢
故障不可避免
件:软 Bug
硬件:阿里数据中心 年数万次每
天 :致命的灾
人 : 操作为 误
猜 :按概率排序竞 题
- 5. 可用性的 价业务 值可用性的 价业务 值
5 个 9 可用性
5.25 分 意味着什 ?钟 么
= 580,000,000
= 17 万条内裤
= 伤百万用 的心户
- 6. 数据 的高可用传统 库数据 的高可用传统 库
机的高可用单
高可用的硬件
件 冗余组 级
无法避免 点故障?单
集群的高可用
高端的存 区域网(储 SAN )
机房部署,无法避免的“天 ”?单 灾
主 制的高可用备复
可以跨机房
- 7. 高可用的 机单高可用的 机单
双路冗余 交 源热 换电
双路市 独立供电 电
双路冗余光 交互 有网纤 专 络
HostHost HostHost
SwitchSwitch SwitchSwitch
DataBaseDataBase
- 8. 集群的高可用集群的高可用
InfiniBand: 40Gbit/s
Latency: 1us
v.s.
Ethernet: 250 us
InfiniBand: 40Gbit/s
Latency: 1us
v.s.
Ethernet: 250 us
DataBase
Instance
DataBase
Instance
OSOS
Node 1Node 1
DataBase
Instance
DataBase
Instance
OSOS
Node 2Node 2
DataBase
Instance
DataBase
Instance
OSOS
Node 3Node 3
DataBase FilesDataBase Files
Shared StorageShared Storage
高端存储
高档服务器
- 10. 数据 主 制库 备复数据 主 制库 备复
主机 制复 redo 日志到 机备
同 模式(最大保 )步 护
• 机备 是否写 后 答主机?盘 应
模式(最高性能)异步
• 主机不等待 机的 答备 应
思考 : 比如上 模式题 对 两种
- 11. 数据 主 制库 备复数据 主 制库 备复
主机 制复 redo 日志到 机备
混合模式(最大可用)
• 同 模式不可用 , 模式步 时 转为异步
• 衡了最大性能和 数据的最大保权 对 护
- 12. 高可用集群高可用集群 ++ 主 制备复主 制备复
IDC-1 IDC-2
Redo
Stream
Redo
Stream
DataBase
Instance
DataBase
Instance
OSOS
Node 1Node 1
DataBase
Instance
DataBase
Instance
OSOS
Node 2Node 2
DataBase FilesDataBase Files
Shared StorageShared Storage
DataBase
Instance
DataBase
Instance
OSOS
Node 1Node 1
DataBase
Instance
DataBase
Instance
OSOS
Node 2Node 2
DataBase FilesDataBase Files
Shared StorageShared Storage
太 了!!贵
- 15. 分布式 境的困境环分布式 境的困境环
普通服 器务 + 公用的网 境络环
故障成 常为 态
跨机房部署是必需
OceanBase 只能走主 制的路备复
如何保 真正的数据零 失?证 丢
如何 衡性能、可用性、数据安全?权
CPU
- 16. 最大可用 = 最大保 (同 )护 步 + 最大性能(异
)步
最大可用模式的数据 失丢
基于主 制的困境备复基于主 制的困境备复
MasterMaster SlaveSlave
7 8 9 7 87 8 9
- 17. OceanBaseOceanBase 主 同备 步主 同备 步
主 行写事 并同库执 务 步 redo 日志到备库
多数成功就 写事 成功认为 务
MasterMaster
IDC-1IDC-1
SlaveSlave
IDC-3IDC-3
SlaveSlave
IDC-2IDC-2
7 8
7
9
8
7 9
- 19. 基于投票的同 制步复基于投票的同 制步复
点优
保 了数据安全性证
redo 日志 同 写多强 步 份
更大化系 的可用性统
机房故障不影 写服单 响读 务
数据一致性 & 系 可用性:统 3/5 > 2/3 > 2/2
- 20. 同步 redo 日志写多 保 数据零 失份 证 丢
多数写成功即成功提供更高的可用性
小结小结
MasterMaster
IDC-1IDC-1
SlaveSlave
IDC-3IDC-3
SlaveSlave
IDC-2IDC-2
- 23. 原 :任意 刻最多只能有一个则 时 Leader
投票 ,以不可靠成 提供可靠服协议 员 务
多数 ( 超 半数过 ) 成 可用 服 可用员 则 务
投票简单 协议
要容忍网 分区络
Leader 租 (约 Lease )
分布式 概述选举问题分布式 概述选举问题
Leader
- 24. 分布式 基本原理选举分布式 基本原理选举
Paxos 的基本要求协议
成 不 假员 说 话 ( 非拜占庭式 )
个成 不自相矛盾单 员说话 :投票给 A 了,就不能再投票给
B
任何修改需要多数成 同意员 :多个成 投票的同员 步
个成 不自相矛盾单 员说话
投出的票 行持久化?对 进
住自己在一个记 lease 周期内的投票 ( 分布式选举 )
重 后一个启 lease 周期内不投票
多个成 投票的同员 步
有 者协调 (leader)
无 者?协调
- 25. 多个成 投票的同员 步多个成 投票的同员 步
问题
系 或者原统刚启动 leader 常异 lease 期后,过 选 举
leader 的 候,各个参与者的投票 各不相同, 个参时 时间 每
与者收到 票的 各不相同选 时间
投票后,参与者在一轮 lease 周期内不得再次投票 (“ 不得
自相矛盾” )
已有方案
各 个 参 与 者 在 起 投 票 , 延 某 个 随 机发 时 迟 时间
(100ms~300ms) ,最早 起者通常成 新的发 为 leader
序 与 密 合、 以融入 中时 逻辑 选举逻辑紧 耦 业务规则难 选举序 与 密 合、 以融入 中时 逻辑 选举逻辑紧 耦 业务规则难 选举
容易出 失现选举 败 (election split) ,下次 主要等选 Lease 期!!过
- 26. ““ 同步同步”” 无主选举无主选举
按 一的统 规则 (“ 投票 重权 ” ) 新选择 leader
所有成 在员 T1 刻时 “ 同时同时” 起发 选举
接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播
T1: 投票预 T2: 投票
T4: 选举结
束
T3: 票计 &
广播
- 27. ““ 同 ”步 时钟同 ”步 时钟
充当无主 的 者时钟 选举 协调
个 程的 被均分 片每 进 时间 为时间
个 片内只能 行一次无主每 时间 进 选举
在 Tcycle 整数倍 刻 起时 发 选举
- 28. 无主 序分析选举时无主 序分析选举时
偏差最大时钟 Tdiff ,网 程收 理 最络单 发传输处 时间
长 Tst
Step 1 : T1 刻广播投票 重时 权
Step 2 :接收投票 重并在权 T2 刻向最大 者投票时 值
投票到 :预 达时间 [T1-Tdiff×2 , T1+Tdiff×2+Tst=T2]
接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播
T1: 投票预 T2: 投票
T3: 票计 &
广播
T4: 选举结
束
- 29. 无主 序分析选举时无主 序分析选举时
Step 3 :接收 票,选 T3 刻 票,得票 半者时 计 过
成功并广播
投票到 :达时间 [T2-Tdiff×2 , T2+Tdiff×2+Tst=T3]
Step 4 :接收新任 leader 广播并在 T4 刻时 结
束选举
新 任 leader 广 播 到 :达时间 [T3-
Tdiff×2 , T3+Tdiff×2+Tst=T4]
耗选举 时 Telect=T4-T1=Tdiff×6+Tst×3
接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播
T1: 投票预 T2: 投票
T3: 票计 &
广播
T4: 选举结
束
- 30. LeaseLease 及无主 周期选举及无主 周期选举
偏差时钟 Tdiff=100ms ,网 程络单 传输 Tst=200ms
耗选举 时 Telect=Tdiff×6+Tst×3=1200ms
展的 耗扩 选举 时 Telect2=Telect+200=1400ms
Tlease=4×Telect2=5600ms ,从 TT11 始开
无主 周期选举 Tcycle=5×Tlease=7000ms
T1
Tlease
Tlease
Tcycle
TcycleT4
接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播
T1: 投票预 T2: 投票
T3: 票计 &
广播
T4: 选举结
束
- 31. Why TWhy Tcyclecycle > T> Tleaselease ??
5 个成员 C1~C5 选举
T1 刻 始 , 出新时 开 选 举 选 leader
C1
T4 刻时 C2~C5 未 收 到 C1 新 任
leader 广播
Tcycle 刻时 C2~C5 重新 始 ,开 选举 选
出新 leader C4
C
2
C
1
C
3C
5
C
4
Clien
t
T1
Tlease
Tlease
Tcycle
TcycleT4
接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播
T1: 投票预 T2: 投票
T3: 票计 &
广播
T4: 选举结
束
- 32. ““ 同步同步”” 无主 的 缺点选举 优无主 的 缺点选举 优
点优
超 半数成 正常且参与, 一定成功过 员 则选举
:定 数据实现简单 长 结构 + 新消息直接覆盖旧的 + 定时处
理
缺点
最大 偏差及最大网 有要求对 时钟 络传输时间
Leader 常后,最异 长 (Tlease+ Tcycle+Telect) 出新选 leader
Tlease
Tlease Tcycle
Tcycle
T1 T3
- 33. 的 棒性选举协议 鲁的 棒性选举协议 鲁
可能双主 ( 裂脑 )
无主 :若选举 Tdiff > (Telect2+T3-T1)=2200ms
自 控:动监 A 在 Ta 刻 包,时 发 B 在 Tb 刻收到, :时 则 -
2*Tdiff <= Tb-Ta <= 2*Tdiff + Tst
Tlease
Tlease
Tcycle
Tcycle
T1 T3
Leader
Tlease
Leader
Tlease
- 34. 总结总结
数据 的高可用性传统 库
依 昂 的硬件赖 贵 设备
主 同 的局限性备 步
OceanBase 的高可用性架构
不可靠的 PC 服 器务
利用分布式投票 的多机日志同实现 步
保 一致的同 提供更大可用性证强 时
利用分布式 了可靠的 主选举实现 选
主宕机后自 恢 保 写的可用性动 复 证
Hinweis der Redaktion
- 开场白:
串场
个人介绍
- 分层:互联网服务的可用性要求&lt;数据库的可用性要求
提问:哪种故障最频繁?
- Availability vs reliability
统计周期很重要
故障频率-》可靠性
提问:哪种统计周期的要求更高?
- 冗余
- Oracle Exadata
纠错码,RAID等
- No SPOF
镜像数据量大
距离限制,通常部署在一个IDC中
- 实现冗余的手段是复制,复制的问题是如何保证一致性;进而在保证一致性的情况下提供最大可用性。
日志以事务为单位
Group commit
光纤100km/ms rtt
- 贵!主机宕机可用性,备机宕机,网络隔离情况下写不可用
- 需要多各个模块进行说明
通过云计算技术实现容错和故障恢复
- 银行转账的例子
- 分布式投票
- 调侃Lampson
Barbala Liskov
- 1. 十二届全国人大一次会议举行第四次全体会议代表在投票
2. 阿富汗总统选举
- 程序有bug,就可能说假话,导致协议失败
什么时候记不住自己一个lease周期内的投票?
- 后面有反例说明,如果不遵守“一轮lease后才可再次投票”的规则,可能出现双主
时序逻辑与选举逻辑紧密耦合:因为没有“协调者”,谁先发起选举谁就有可能被选为主
- T1时刻:预投票,即每个成员广播自己的“投票权重”
T2(&gt;T1)时刻:投票,即每个成员向收到的“投票权重”最大者投票
T3(&gt;T2)时刻:计票&广播,即统计选票,得票过半者当选新任leader并向所有成员广播
T4(&gt;T3)时刻:选举结束(成员接收到新任leader广播)
如何确定T1?且听下文分解
从T1到T2:网络传输延迟、时钟误差
- Tst=200ms=&gt;rt=400ms
杭州到美国RT:正常150ms,绕行香港时185ms (如中美直通专线异常会绕行中-港-美,需要增加35ms左右)。再极端点拥塞的话,那延迟会到250ms甚至丢包。
leader自己不使用最后一个Telect2
为什么不能在选举失败T4后立刻再选举?为什么Tcycle&gt;Tlease?
- 为什么不能在选举失败T4后立刻再选举?为什么Tcycle&gt;Tlease?
- Leader监控到自身与多数选举者时钟错位,则终止自身的leader角色
到目前为止我们分析了Paxos投票协议,接下来看OceanBase多机群使用Paxos投票协议