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

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (8)

Leveldb background
Leveldb backgroundLeveldb background
Leveldb background
 
涨客资,用推策 推策产品介绍
涨客资,用推策 推策产品介绍涨客资,用推策 推策产品介绍
涨客资,用推策 推策产品介绍
 
Bigtable
BigtableBigtable
Bigtable
 
The Anatomy Of The Google Architecture Fina Lv1.1
The Anatomy Of The Google Architecture Fina Lv1.1The Anatomy Of The Google Architecture Fina Lv1.1
The Anatomy Of The Google Architecture Fina Lv1.1
 
Baidu
BaiduBaidu
Baidu
 
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
 
GOOGLE BIGTABLE
GOOGLE BIGTABLEGOOGLE BIGTABLE
GOOGLE BIGTABLE
 
The Google Bigtable
The Google BigtableThe Google Bigtable
The Google Bigtable
 

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

海量資料與圖書館
海量資料與圖書館海量資料與圖書館
海量資料與圖書館
皓仁 柯
 
Selling sybase hds solution for banking
Selling sybase hds solution for bankingSelling sybase hds solution for banking
Selling sybase hds solution for banking
focusbi
 
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
Beckett Hsieh
 
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
George Ang
 
软件工程 第二章
软件工程 第二章软件工程 第二章
软件工程 第二章
浒 刘
 
Data mining 1
Data mining 1Data mining 1
Data mining 1
Dori Ya
 
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
d0nn9n
 
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
PMCamp
 

Ähnlich wie Ocean base 破解数据库高可用难题 (20)

賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
 
组网与网络管理技术(第四章)
组网与网络管理技术(第四章)组网与网络管理技术(第四章)
组网与网络管理技术(第四章)
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
 
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用
BDTC2015 阿里巴巴-鄢志杰(智捷)-deep learning助力客服小二:数据技术及机器学习在客服中心的应用
 
儲存三二話
儲存三二話儲存三二話
儲存三二話
 
海量資料與圖書館
海量資料與圖書館海量資料與圖書館
海量資料與圖書館
 
11/14王團研究室—安全大師王團論毒 in台中
11/14王團研究室—安全大師王團論毒 in台中11/14王團研究室—安全大師王團論毒 in台中
11/14王團研究室—安全大師王團論毒 in台中
 
Selling sybase hds solution for banking
Selling sybase hds solution for bankingSelling sybase hds solution for banking
Selling sybase hds solution for banking
 
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
教材摘要版 -Big data-海量資料的資料採礦方法-三星課程網陳景祥顧問-20130521
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
 
软件工程 第二章
软件工程 第二章软件工程 第二章
软件工程 第二章
 
Data mining 1
Data mining 1Data mining 1
Data mining 1
 
2009-02 Sharetech MS6X20
2009-02 Sharetech MS6X202009-02 Sharetech MS6X20
2009-02 Sharetech MS6X20
 
Emc keynote 1130 1200
Emc keynote 1130 1200Emc keynote 1130 1200
Emc keynote 1130 1200
 
機密圖檔與敏感資料庫資料防洩漏方案
機密圖檔與敏感資料庫資料防洩漏方案機密圖檔與敏感資料庫資料防洩漏方案
機密圖檔與敏感資料庫資料防洩漏方案
 
腾讯开放平台 Hellena
腾讯开放平台 Hellena腾讯开放平台 Hellena
腾讯开放平台 Hellena
 
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
 
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂59 数据蕴含商机,挖掘决胜千里
 

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

  • 1. 志 (解 )孙 东 伦 xielun.szd@alipay.com 杭州 2014-6-15 破解数据 高可用库 难题
  • 2. AgendaAgenda 数据 的高可用性传统 库 OceanBase 的高可用架构 OceanBase 的分布式选举 小结
  • 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 高端存储 高档服务器
  • 9. 主 的高可用备主 的高可用备 主 制备复 主机提供 写, 机提供 服读 备 读 务 主机宕机,把 机切 主机备 换为 一主 N 备
  • 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 太 了!!贵
  • 14. OceanBaseOceanBase 架构架构 (( 机群单机群单 )) 注:后 内容会将续 OB 集群作 一个单 为 DataBase 修改 量增 用接口应 基 数据线 Root Server 控中心总
  • 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
  • 18. PaxosPaxos "Time, Clocks, and the Ordering of Events in a Distributed System" Byzantine generals Paxos LaTeX 2013 ACM Turing Award
  • 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 服 器务 利用分布式投票 的多机日志同实现 步 保 一致的同 提供更大可用性证强 时 利用分布式 了可靠的 主选举实现 选 主宕机后自 恢 保 写的可用性动 复 证
  • 35. ThanksThanks 源的分布式 系数据开 关 库 OceanBase http://alibaba.github.io/oceanbase/

Hinweis der Redaktion

  1. 开场白: 串场 个人介绍
  2. 分层:互联网服务的可用性要求&amp;lt;数据库的可用性要求 提问:哪种故障最频繁?
  3. Availability vs reliability 统计周期很重要 故障频率-》可靠性 提问:哪种统计周期的要求更高?
  4. 冗余
  5. Oracle Exadata 纠错码,RAID等
  6. No SPOF 镜像数据量大 距离限制,通常部署在一个IDC中
  7. 实现冗余的手段是复制,复制的问题是如何保证一致性;进而在保证一致性的情况下提供最大可用性。 日志以事务为单位 Group commit 光纤100km/ms rtt
  8. 贵!主机宕机可用性,备机宕机,网络隔离情况下写不可用
  9. 需要多各个模块进行说明 通过云计算技术实现容错和故障恢复
  10. 银行转账的例子
  11. 分布式投票
  12. 调侃Lampson Barbala Liskov
  13. 1. 十二届全国人大一次会议举行第四次全体会议代表在投票 2. 阿富汗总统选举
  14. 程序有bug,就可能说假话,导致协议失败 什么时候记不住自己一个lease周期内的投票?
  15. 后面有反例说明,如果不遵守“一轮lease后才可再次投票”的规则,可能出现双主 时序逻辑与选举逻辑紧密耦合:因为没有“协调者”,谁先发起选举谁就有可能被选为主
  16. T1时刻:预投票,即每个成员广播自己的“投票权重” T2(&amp;gt;T1)时刻:投票,即每个成员向收到的“投票权重”最大者投票 T3(&amp;gt;T2)时刻:计票&amp;广播,即统计选票,得票过半者当选新任leader并向所有成员广播 T4(&amp;gt;T3)时刻:选举结束(成员接收到新任leader广播) 如何确定T1?且听下文分解 从T1到T2:网络传输延迟、时钟误差
  17. Tst=200ms=&amp;gt;rt=400ms 杭州到美国RT:正常150ms,绕行香港时185ms (如中美直通专线异常会绕行中-港-美,需要增加35ms左右)。再极端点拥塞的话,那延迟会到250ms甚至丢包。 leader自己不使用最后一个Telect2 为什么不能在选举失败T4后立刻再选举?为什么Tcycle&amp;gt;Tlease?
  18. 为什么不能在选举失败T4后立刻再选举?为什么Tcycle&amp;gt;Tlease?
  19. Leader监控到自身与多数选举者时钟错位,则终止自身的leader角色 到目前为止我们分析了Paxos投票协议,接下来看OceanBase多机群使用Paxos投票协议