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

35
(解 [email protected] 杭州 2014-6-15 破解数据 高可用 难题

Upload: everestsun

Post on 02-Jul-2015

493 views

Category:

Software


1 download

DESCRIPTION

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

TRANSCRIPT

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

志 (解 )孙 东 伦[email protected]

杭州2014-6-15

破解数据 高可用库 难题

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

AgendaAgenda

数据 的高可用性传统 库OceanBase 的高可用架构OceanBase 的分布式选举

小结

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

高可用的数据 系库 统高可用的数据 系库 统数据可用性:保 数据可证 访问数据安全性:防止数据 失丢

故障不可避免 件:软 Bug硬件:阿里数据中心 年数万次每天 :致命的灾人 : 操作为 误

猜 :按概率排序竞 题

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

几个“几个“九九”的认识”的认识

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

可用性的 价业务 值可用性的 价业务 值

5 个 9 可用性5.25 分 意味着什 ?钟 么

= 580,000,000= 17 万条内裤= 伤百万用 的心户

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

数据 的高可用传统 库数据 的高可用传统 库 机的高可用单

高可用的硬件 件 冗余组 级无法避免 点故障?单

集群的高可用高端的存 区域网(储 SAN ) 机房部署,无法避免的“天 ”?单 灾

主 制的高可用备复可以跨机房

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

高可用的 机单高可用的 机单双路冗余 交 源热 换电双路市 独立供电 电双路冗余光 交互 有网纤 专 络

HostHost HostHost

SwitchSwitch SwitchSwitch

DataBaseDataBase

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

集群的高可用集群的高可用

InfiniBand: 40Gbit/sLatency: 1usv.s.Ethernet: 250 us

InfiniBand: 40Gbit/sLatency: 1usv.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

高端存储

高档服务器

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

主 的高可用备主 的高可用备主 制备复

主机提供 写, 机提供 服读 备 读 务主机宕机,把 机切 主机备 换为一主 N 备

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

数据 主 制库 备复数据 主 制库 备复

主机 制复 redo 日志到 机备同 模式(最大保 )步 护• 机备 是否写 后 答主机?盘 应

模式(最高性能)异步• 主机不等待 机的 答备 应

思考 : 比如上 模式题 对 两种

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

数据 主 制库 备复数据 主 制库 备复

主机 制复 redo 日志到 机备混合模式(最大可用)• 同 模式不可用 , 模式步 时 转为异步• 衡了最大性能和 数据的最大保权 对 护

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

高可用集群高可用集群 ++ 主 制备复主 制备复

IDC-1 IDC-2

Redo StreamRedo

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

太 了!!贵

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

OceanBase 的高可用性架构

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

OceanBaseOceanBase 架构架构 (( 机群单机群单 ))

注:后 内容会将续 OB 集群作 一个单 为DataBase

修改 量增

用接口应

基 数据线Root

Server

控中心总

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

分布式 境的困境环分布式 境的困境环

普通服 器 务 + 公用的网 境络环故障成 常为 态跨机房部署是必需

OceanBase 只能走主 制的路备复如何保 真正的数据零 失?证 丢如何 衡性能、可用性、数据安全?权

CPU

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

最大可用 = 最大保 (同 )护 步 + 最大性能(异)步

最大可用模式的数据 失丢

基于主 制的困境备复基于主 制的困境备复

MasterMaster SlaveSlave

7 8 9 7 87 8 9

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

OceanBaseOceanBase 主 同备 步主 同备 步

主 行写事 并同库执 务 步 redo 日志到备库 多数成功就 写事 成功认为 务

MasterMaster

IDC-1IDC-1

SlaveSlave

IDC-3IDC-3

SlaveSlave

IDC-2IDC-2

7 8

7

9

8

7 9

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

PaxosPaxos

"Time, Clocks, and the Ordering of Events in a Distr ibuted System" Byzantine generalsPaxosLaTeX2013 ACM Turing Award

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

基于投票的同 制步复基于投票的同 制步复 点优

保 了数据安全性证 redo 日志 同 写多强 步 份

更大化系 的可用性统 机房故障不影 写服单 响读 务

数据一致性 & 系 可用性:统 3/5 > 2/3 > 2/2

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

同步 redo 日志写多 保 数据零 失份 证 丢多数写成功即成功提供更高的可用性

小结小结

MasterMaster

IDC-1IDC-1

SlaveSlave

IDC-3IDC-3

SlaveSlave

IDC-2IDC-2

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

OceanBase 的分布式选举

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

投票和选举投票和选举

流程怎 保 成功?选举 么 证选举

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

原 :任意 刻最多只能有一个则 时 Leader投票 ,以不可靠成 提供可靠服协议 员 务

多数 ( 超 半数过 ) 成 可用 服 可用员 则 务 投票简单 协议

要容忍网 分区络 Leader 租 (约 Lease )

分布式 概述选举问题分布式 概述选举问题

Leader

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

分布式 基本原理选举分布式 基本原理选举Paxos 的基本要求协议

成 不 假员 说 话 ( 非拜占庭式 ) 个成 不自相矛盾单 员说话 :投票给 A 了,就不能再投票给

B任何修改需要多数成 同意员 :多个成 投票的同员 步

个成 不自相矛盾单 员说话 投出的票 行持久化?对 进 住自己在一个记 lease 周期内的投票 ( 分布式选举 )重 后一个启 lease 周期内不投票

多个成 投票的同员 步有 者协调 (leader)无 者?协调

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

多个成 投票的同员 步多个成 投票的同员 步问题

系 或者 原统刚启动 leader 常异 lease 期后,过 选 举leader 的 候,各个参与者的投票 各不相同, 个参时 时间 每与者收到 票的 各不相同选 时间

投票后,参与者在一轮 lease 周期内不得再次投票 (“ 不得自相矛盾” )

已有方案各 个 参 与 者 在 起 投 票 , 延 某 个 随 机发 时 迟 时间

(100ms~300ms) ,最早 起者通常成 新的发 为 leader 序 与 密 合、 以融入 中时 逻辑 选举逻辑紧 耦 业务规则难 选举序 与 密 合、 以融入 中时 逻辑 选举逻辑紧 耦 业务规则难 选举容易出 失现选举 败 (election split) ,下次 主要等选 Lease 期!!过

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

““ 同步同步”” 无主选举无主选举按 一的统 规则 (“ 投票 重权 ” ) 新选择 leader所有成 在员 T 1 刻时 “ 同时同时” 起发 选举

接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播

T1: 投票预 T2: 投票 T4: 选举结束

T3: 票计 &广播

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

““ 同 ”步 时钟同 ”步 时钟 充当无主 的 者时钟 选举 协调

个 程的 被均分 片每 进 时间 为时间 个 片内只能 行一次无主每 时间 进 选举 在 T cy c l e 整数倍 刻 起时 发 选举

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

无主 序分析选举时无主 序分析选举时

偏差最大时钟 T d i f f ,网 程收 理 最络单 发传输处 时间长 T s t

Step 1 : T 1 刻广播投票 重时 权Step 2 :接收投票 重并在权 T 2 刻向最大 者投票时 值 投票到 :预 达时间 [T 1-T d i f f×2 , T 1+T d i f f×2+T s t=T 2]

接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播

T1: 投票预 T2: 投票 T3: 票计 &广播

T4: 选举结束

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

无主 序分析选举时无主 序分析选举时

Step 3 :接收 票,选 T 3 刻 票,得票 半者时 计 过成功并广播投票到 :达时间 [T 2-T d i f f×2 , T 2+T d i f f×2+T s t=T 3]

Step 4 :接收新任 leader 广播并在 T 4 刻时 结束选举新 任 leader 广 播 到 :达时间 [T 3-

T d i f f×2 , T 3+T d i f f×2+T s t=T 4]

耗选举 时 T e l ec t=T 4-T 1=T d i f f×6+T s t×3

接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播

T1: 投票预 T2: 投票 T3: 票计 &广播

T4: 选举结束

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

LeaseLease 及无主 周期选举及无主 周期选举

偏差时钟 T d i f f=100ms ,网 程络单 传输 T s t=200ms 耗选举 时 T e lec t=T d i f f×6+T s t×3=1200ms 展的 耗扩 选举 时 T e lec t 2=T e lec t+200=1400msT l e as e=4×T e lec t2=5600ms ,从 TT 11 始开无主 周期选举 T cyc le=5×T l ease=7000ms

T1

T leaseT leaseTcycleTcycleT4

接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播

T1: 投票预 T2: 投票 T3: 票计 &广播

T4: 选举结束

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

Why TWhy Tcyclecycle > T > Tlease lease ??

5 个成员 C 1~C 5 选举T 1 刻 始 , 出新时 开 选 举 选 leader

C 1

T 4 刻时 C 2~C 5 未 收 到 C 1 新 任leader 广播

T c y c l e 刻时 C 2~C 5 重新 始 ,开 选举 选出新 leader C 4

背了违 “不自相矛盾”的要求

C2

C1

C3C5

C4

Client

T1

T leaseT leaseTcycleTcycleT4

接收 投票预接收 投票预 接收投票接收投票 接收广播接收广播

T1: 投票预 T2: 投票 T3: 票计 &广播

T4: 选举结束

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

““ 同步同步”” 无主 的 缺点选举 优无主 的 缺点选举 优

点优超 半数成 正常且参与, 一定成功过 员 则选举 :定 数据实现简单 长 结构 + 新消息直接覆盖旧的 + 定时处

理缺点

最大 偏差及最大网 有要求对 时钟 络传输时间Leader 常后,最异 长 (T l e as e+ T c y c l e+T e l e c t) 出新选 leader

T leaseT lease TcycleTcycleT1 T3

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

的 棒性选举协议 鲁的 棒性选举协议 鲁可能双主 ( 裂脑 )

无主 :若选举 T d i f f > (T e l ec t 2+T3-T1)=2200ms自 控:动监 A 在 T a 刻 包,时 发 B 在 T b 刻收到, :时 则 -

2*T d i f f <= T b-T a <= 2*T d i f f + T s t

T leaseT lease

TcycleTcycleT1 T3

Leader

T lease

Leader

T lease

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

总结总结 数据 的高可用性传统 库

依 昂 的硬件赖 贵 设备主 同 的局限性备 步

OceanBase 的高可用性架构不可靠的 PC 服 器务利用分布式投票 的多机日志同实现 步

保 一致的同 提供更大可用性证强 时利用分布式 了可靠的 主选举实现 选

主宕机后自 恢 保 写的可用性动 复 证

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

ThanksThanks

源的分布式 系数据开 关 库OceanBase

http://alibaba.github.io/oceanbase/