Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ocean base 破解数据库高可用难题

804 views

Published on

分布式选举破解跨机房部署数据库高可用难题

Published in: Software
  • Be the first to comment

Ocean base 破解数据库高可用难题

  1. 1. 志 (解 )孙 东 伦 xielun.szd@alipay.com 杭州 2014-6-15 破解数据 高可用库 难题
  2. 2. AgendaAgenda 数据 的高可用性传统 库 OceanBase 的高可用架构 OceanBase 的分布式选举 小结
  3. 3. 高可用的数据 系库 统高可用的数据 系库 统 数据可用性:保 数据可证 访问 数据安全性:防止数据 失丢 故障不可避免  件:软 Bug 硬件:阿里数据中心 年数万次每 天 :致命的灾 人 : 操作为 误 猜 :按概率排序竞 题
  4. 4. 几个“几个“九九”的认识”的认识
  5. 5. 可用性的 价业务 值可用性的 价业务 值 5 个 9 可用性 5.25 分 意味着什 ?钟 么 = 580,000,000 = 17 万条内裤 = 伤百万用 的心户
  6. 6. 数据 的高可用传统 库数据 的高可用传统 库  机的高可用单 高可用的硬件  件 冗余组 级 无法避免 点故障?单 集群的高可用 高端的存 区域网(储 SAN )  机房部署,无法避免的“天 ”?单 灾 主 制的高可用备复 可以跨机房
  7. 7. 高可用的 机单高可用的 机单 双路冗余 交 源热 换电 双路市 独立供电 电 双路冗余光 交互 有网纤 专 络 HostHost HostHost SwitchSwitch SwitchSwitch DataBaseDataBase
  8. 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 高端存储 高档服务器
  9. 9. 主 的高可用备主 的高可用备 主 制备复 主机提供 写, 机提供 服读 备 读 务 主机宕机,把 机切 主机备 换为 一主 N 备
  10. 10. 数据 主 制库 备复数据 主 制库 备复 主机 制复 redo 日志到 机备 同 模式(最大保 )步 护 • 机备 是否写 后 答主机?盘 应  模式(最高性能)异步 • 主机不等待 机的 答备 应 思考 : 比如上 模式题 对 两种
  11. 11. 数据 主 制库 备复数据 主 制库 备复 主机 制复 redo 日志到 机备 混合模式(最大可用) • 同 模式不可用 , 模式步 时 转为异步 • 衡了最大性能和 数据的最大保权 对 护
  12. 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 太 了!!贵
  13. 13. OceanBase 的高可用性架构
  14. 14. OceanBaseOceanBase 架构架构 (( 机群单机群单 )) 注:后 内容会将续 OB 集群作 一个单 为 DataBase 修改 量增 用接口应 基 数据线 Root Server 控中心总
  15. 15. 分布式 境的困境环分布式 境的困境环 普通服 器务 + 公用的网 境络环 故障成 常为 态 跨机房部署是必需 OceanBase 只能走主 制的路备复 如何保 真正的数据零 失?证 丢 如何 衡性能、可用性、数据安全?权 CPU
  16. 16. 最大可用 = 最大保 (同 )护 步 + 最大性能(异 )步 最大可用模式的数据 失丢 基于主 制的困境备复基于主 制的困境备复 MasterMaster SlaveSlave 7 8 9 7 87 8 9
  17. 17. OceanBaseOceanBase 主 同备 步主 同备 步 主 行写事 并同库执 务 步 redo 日志到备库  多数成功就 写事 成功认为 务 MasterMaster IDC-1IDC-1 SlaveSlave IDC-3IDC-3 SlaveSlave IDC-2IDC-2 7 8 7 9 8 7 9
  18. 18. PaxosPaxos "Time, Clocks, and the Ordering of Events in a Distributed System" Byzantine generals Paxos LaTeX 2013 ACM Turing Award
  19. 19. 基于投票的同 制步复基于投票的同 制步复  点优  保 了数据安全性证  redo 日志 同 写多强 步 份 更大化系 的可用性统  机房故障不影 写服单 响读 务 数据一致性 & 系 可用性:统 3/5 > 2/3 > 2/2
  20. 20. 同步 redo 日志写多 保 数据零 失份 证 丢 多数写成功即成功提供更高的可用性 小结小结 MasterMaster IDC-1IDC-1 SlaveSlave IDC-3IDC-3 SlaveSlave IDC-2IDC-2
  21. 21. OceanBase 的分布式选举
  22. 22. 投票和选举投票和选举 流程怎 保 成功?选举 么 证选举
  23. 23. 原 :任意 刻最多只能有一个则 时 Leader 投票 ,以不可靠成 提供可靠服协议 员 务  多数 ( 超 半数过 ) 成 可用 服 可用员 则 务  投票简单 协议  要容忍网 分区络  Leader 租 (约 Lease ) 分布式 概述选举问题分布式 概述选举问题 Leader
  24. 24. 分布式 基本原理选举分布式 基本原理选举 Paxos 的基本要求协议 成 不 假员 说 话 ( 非拜占庭式 )  个成 不自相矛盾单 员说话 :投票给 A 了,就不能再投票给 B 任何修改需要多数成 同意员 :多个成 投票的同员 步  个成 不自相矛盾单 员说话  投出的票 行持久化?对 进  住自己在一个记 lease 周期内的投票 ( 分布式选举 ) 重 后一个启 lease 周期内不投票 多个成 投票的同员 步 有 者协调 (leader) 无 者?协调
  25. 25. 多个成 投票的同员 步多个成 投票的同员 步 问题 系 或者原统刚启动 leader 常异 lease 期后,过 选 举 leader 的 候,各个参与者的投票 各不相同, 个参时 时间 每 与者收到 票的 各不相同选 时间 投票后,参与者在一轮 lease 周期内不得再次投票 (“ 不得 自相矛盾” ) 已有方案 各 个 参 与 者 在 起 投 票 , 延 某 个 随 机发 时 迟 时间 (100ms~300ms) ,最早 起者通常成 新的发 为 leader  序 与 密 合、 以融入 中时 逻辑 选举逻辑紧 耦 业务规则难 选举序 与 密 合、 以融入 中时 逻辑 选举逻辑紧 耦 业务规则难 选举 容易出 失现选举 败 (election split) ,下次 主要等选 Lease 期!!过
  26. 26. ““ 同步同步”” 无主选举无主选举 按 一的统 规则 (“ 投票 重权 ” ) 新选择 leader 所有成 在员 T1 刻时 “ 同时同时” 起发 选举 接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播 T1: 投票预 T2: 投票 T4: 选举结 束 T3: 票计 & 广播
  27. 27. ““ 同 ”步 时钟同 ”步 时钟  充当无主 的 者时钟 选举 协调  个 程的 被均分 片每 进 时间 为时间  个 片内只能 行一次无主每 时间 进 选举  在 Tcycle 整数倍 刻 起时 发 选举
  28. 28. 无主 序分析选举时无主 序分析选举时  偏差最大时钟 Tdiff ,网 程收 理 最络单 发传输处 时间 长 Tst Step 1 : T1 刻广播投票 重时 权 Step 2 :接收投票 重并在权 T2 刻向最大 者投票时 值  投票到 :预 达时间 [T1-Tdiff×2 , T1+Tdiff×2+Tst=T2] 接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播 T1: 投票预 T2: 投票 T3: 票计 & 广播 T4: 选举结 束
  29. 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. 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. 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. 32. ““ 同步同步”” 无主 的 缺点选举 优无主 的 缺点选举 优  点优 超 半数成 正常且参与, 一定成功过 员 则选举  :定 数据实现简单 长 结构 + 新消息直接覆盖旧的 + 定时处 理 缺点  最大 偏差及最大网 有要求对 时钟 络传输时间 Leader 常后,最异 长 (Tlease+ Tcycle+Telect) 出新选 leader Tlease Tlease Tcycle Tcycle T1 T3
  33. 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. 34. 总结总结  数据 的高可用性传统 库 依 昂 的硬件赖 贵 设备 主 同 的局限性备 步 OceanBase 的高可用性架构 不可靠的 PC 服 器务 利用分布式投票 的多机日志同实现 步 保 一致的同 提供更大可用性证强 时 利用分布式 了可靠的 主选举实现 选 主宕机后自 恢 保 写的可用性动 复 证
  35. 35. ThanksThanks 源的分布式 系数据开 关 库 OceanBase http://alibaba.github.io/oceanbase/

×