SlideShare une entreprise Scribd logo
1  sur  47
破解数据库高可用难题 
孙志东(解伦) 
xielun.szd@alipay.com 
杭州 
2014-6-15
AAggeennddaa 
传统数据库的高可用性 
OceanBase的高可用架构 
OceanBase的分布式选举 
小结
高可用的数据库系统
数据可用性:保证数据可访问 
数据安全性:防止数据丢失 
故障不可避免 
软件:Bug 
硬件:阿里数据中心每年数万次 
天灾:致命的 
人为:误操作 
竞猜题:按概率排序
几个““九””的认识
可用性的业务价值
5 个9 可用性 
5.25 分钟意味着什么? 
= 580,000,000 
= 17 万条内裤 
= 伤百万用户的心
传统数据库的高可用
 机的高可用单 
高可用的硬件 
组件级冗余 
无法避免单点故障? 
集群的高可用 
高端的存储区域网(SAN ) 
单机房部署,无法避免的“天灾”? 
主备复制的高可用 
可以跨机房
高可用的单机
双路冗余热交换电源 
双路市电独立供电 
双路冗余光纤交互专有网络 
HHoosstt HHoosstt 
SSwwiittcchh SSwwititcchh 
DDaattaaBBaassee
集群的高可用
NNooddee 3 3 
DataBase 
Instance 
InfiniBand: 40Gbit/s 
Latency: 1us 
v.s. 
Ethernet: 250 us 
InfiniBand: 40Gbit/s 
Latency: 1us 
v.s. 
Ethernet: 250 us 
NNooddee 1 1 
DataBase 
Instance 
OOSS 
DataBase 
Instance 
NNooddee 2 2 
DataBase 
Instance 
DataBase 
Instance 
OOSS 
DataBase 
Instance 
OOSS 
SShhaareredd S Stotoraraggee 
DDaatataBBaassee F Filieless 
高端存储 
高档服务器
主备的高可用
主备复制 
主机提供读写,备机提供读服务 
主机宕机,把备机切换为主机 
一主N 备
数据库主备复制
主机复制redo日志到备机 
同步模式(最大保护) 
• 备机是否写盘后应答主机? 
异步模式(最高性能) 
• 主机不等待备机的应答 
思考题:对比如上两种模式
数据库主备复制
主机复制redo日志到备机 
混合模式(最大可用) 
• 同步模式不可用时,转为异步模式 
• 权衡了最大性能和对数据的最大保护
高可用集群++主备复制
Redo 
Stream 
Redo 
Stream 
NNoodde e1 1 
DataBase 
Instance 
OOSS 
DataBase 
Instance 
SShhaareredd S Stotoraraggee 
NNoodde e2 2 
DataBase 
Instance 
OOSS 
SShhaareredd S Stotoraraggee 
IDC-1 IDC-2 
NNoodde e2 2 
DataBase 
Instance 
OOSS 
DataBase 
Instance 
DDaatataBBaassee F Filieless 
NNoodde e1 1 
DataBase 
Instance 
OOSS 
DataBase 
Instance 
DataBase 
Instance 
DDaatataBBaassee F Filieless 
太贵了!!
OceanBase的高可用性架构
OOcceeaannBBaassee架构((单机群)) 
修改增量 
基线数据 
应用接口 
Root 
Server 
总控中心 
注:后续内容会将OB 单集群作为一个 
DataBase
分布式环境的困境
普通服务器 + 公用的网络环境 
故障成为常态 
跨机房部署是必需 
CPU 
OceanBase 只能走主备复制的路 
如何保证真正的数据零丢失? 
如何权衡性能、可用性、数据安全?
基于主备复制的困境
最大可用= 最大保护(同步)+ 最大性能(异 
步) 
最大可用模式的数据丢失 
MMaasstteerr SSllaavvee 
77 88 99 7 8
OOcceeaannBBaassee主备同步
主库执行写事务并同步redo 日志到备库 
 多数成功就认为写事务成功 
MMaasstteerr 
IIDDCC--11 
SSlalavvee 
IIDDCC--33 
SSllaavvee 
IIDDCC--22 
7 8 
7 
9 
8 
7 9
PPaaxxooss 
"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日志写多份保证数据零丢失 
多数写成功即成功提供更高的可用性 
MMaasstteerr 
IIDDCC--11 
SSllaavvee 
IIDDCC--33 
SSllaavvee 
IIDDCC--22
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 整数倍时刻发起选举
无主选举时序分析
接接收收预预投投票票接接收收投投票票接接收收广广播播 
T1: 预投票T2: 投票T3: 计票& 
广播 
T4: 选举结 
束 
时钟偏差最大Tdiff ,网络单程收发传输处理时间最 
长Tst 
Step 1 :T1 时刻广播投票权重 
Step 2 :接收投票权重并在T2 时刻向最大值者投票 
 预投票到达时间:[T1-Tdiff×2 ,T1+Tdiff×2+Tst=T2]
无主选举时序分析
接接收收预预投投票票接接收收投投票票接接收收广广播播 
T1: 预投票T2: 投票T3: 计票& 
广播 
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 
T4: 选举结 
束
LLeeaassee及无主选举周期
T1: 预投票T2: 投票T3: 计票& 
T1 
接接收收预预投投票票接接收收投投票票接接收收广广播播 
广播 
T4: 选举结 
束 
Tlease Tlease Tcycle TT4 cycle 
时钟偏差Tdiff=100ms ,网络单程传输Tst=200ms 
选举耗时Telect=Tdiff×6+Tst×3=1200ms 
扩展的选举耗时Telect2=Telect+200=1400ms 
Tlease=4×Telect2=5600ms ,从TT11 开始 
无主选举周期Tcycle=5×Tlease=7000ms
WWhhyy TTccyyccllee >> TTlleeaassee ?? 
接接收收预预投投票票接接收收投投票票接接收收广广播播 
T1: 预投票T2: 投票T3: 计票& 
5 个成员C1~C5 选举 
广播 
T1 时刻开始选举,选出新leader 
C1 
T4 时刻C2~C5 未收到C1 新任 
leader 广播 
Tcycle 时刻C2~C5 重新开始选举,选 
出新leader C4 
违背了“不自相矛盾”的要求 
T4: 选举结 
束 
C 
2 
C 
1 
C 
3C 
5 
C 
4 
Clien 
t 
T1 
Tlease Tlease Tcycle TT4 cycle
““ 同步””无主选举的优缺点
优点 
超过半数成员正常且参与,则选举一定成功 
实现简单:定长数据结构+ 新消息直接覆盖旧的+ 定时处 
理 
缺点 
对最大时钟偏差及最大网络传输时间有要求 
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 服务器 
利用分布式投票实现的多机日志同步 
保证强一致的同时提供更大可用性 
利用分布式选举实现了可靠的选主 
主宕机后自动恢复保证写的可用性
TThhaannkkss 
开源的分布式关系数据库 
OceanBase 
http://alibaba.github.io/oceanbase/
实际的分布式系统环境
一组进程间在网络上通过消息通信 
独立的本地内存,磁盘 
网络: 
任意两个进程间可以传递消息 
进程有本地物理时钟,时钟使用NTP 同步 
消息的传送时间有上限 
• 超时的消息可以被安全地丢弃 
故障模型: 
故障的进程不再发送有效的消息
分布式CCAAPP难题
Any networked shared-data system can 
have at most two of three desirable 
properties: 
consistency (C) equivalent to having a single 
up-to-date copy of the data; 
high availability (A) of that data (for 
updates); and 
tolerance to network partitions (P). 
如果发生了网络分区,高可用性和数据一致性不 
可兼得
投票协议
分布式投票和选举协议,以不可靠成员提供可靠服务 
多数( 超过半数) 成员可用则服务可用 
协议本身比较复杂,但基本原理并不复杂 
1.成员不说假话( 非拜占庭式) 
2.单个成员说话不自相矛盾 
3.任何修改需要多数成员同意 
基本做法 
通常选出一个leader 作为协调者,但任何修改仍然需要多 
数成员同意 
Leader 在lease 时间内有效, lease 延长需多数成员同 
意
日志按事务顺序同步
DB1 
DB2 
DB3 
主库执行事务,写磁盘,发送给备库,但不提交 
备库按事务commit 顺序应答主库 
收到#5 及之前的事务日志,未收到#6 号事务日志,但收 
到#7,#8 号事务日志,只应答到#5 
优点:备库日志中间不会有空洞,实现相对简单 
缺点:对网络抖动和服务器性能抖动的抵抗能力较弱,事 
务可能偶尔“顿住”
按事务顺序同步--故障恢复((11..11)) 
故障恢复:1.日志最新者为主, 2.事务日志到达超 
半数的库,3.恢复过程中不对外服务 
Case 1:DB1故障 
DB1 
DB2 
DB3 
Case 1.1:DB1又恢复了,成为主库 
DB1 
DB2 
DB3 
恢复被中断了,DB1 又故障了? 
空事务 
恢复中只补全数据副本,不增删改业务数据,是可重入的
按事务顺序同步--故障恢复((11..22)) 
故障恢复: 1. 日志最新者为主, 2. 事务日志到达超 
半数的库,3.恢复过程中不对外服务 
Case 1:DB1故障 
空事务 
Case 1.2:DB1未恢复,DB2成为主库 
DB1 
DB2 
DB3 
恢复过程可能被打断 
未决事务:原主库(DB1) 最后未同步的若干事务 
 若原主库参与恢复,则未决事务被commit ,否则未决事 
务被回滚
恢复末尾为什么要写空事务
?? 
DB1 故障, DB2 成主库,故障恢复后没有写入操作 
,再次故障,然后DB1上线 
不写空事务: 
DB1 
DB2 
DB3 
DB1 
DB2 
DB3 
 写空事务: 
空事务 
DB1 
DB2 
DB3
按事务顺序同步--故障恢复
(22)) 
故障恢复:1.日志最新者为主,2.事务日志到 
达超半数的库,3.恢复过程中不对外服务 
Case 2:集群重启且DB2故障 
DB1 
DB2 
DB3 
恢复过程可能被打断 
未决事务:原主库(DB1) 最后未同步的若干事务 
空事务 
 若原主库参与恢复,则未决事务被commit ,否则未决 
事务被回滚
跨机房主备复制
Oracle Far Sync :主机实时复制日志到一台 
轻量服务器,后者再异步复制到远端备机 
提供同步模式的数据安全性,且性能更优
有主选举::连任
接接收收预预投投票票接接收收投投票票接接收收广广播播 
T1: 预投票T2: 投票T3: 计票& 
广播 
T4: 选举结 
束 
Tlease Tlease Tcycle TT4 cycle 
Leader 连任 
T1 
1. 预投票:L1( 当前Leader) 在T1 时刻发起连任申请 
2. 投票:成员收到leader 连任申请后在T2 时刻投票 
3. 计票& 广播: T3 时刻计票,得票超过半数则选举成功并 
广播,否则选举失败( 将在lease 过期后进入无主选举) 
4. 选举结束:接收选举成功广播并在T4 时刻结束选举
有主选举::改选
接接收收预预投投票票接接收收投投票票接接收收广广播播 
T1: 预投票T2: 投票T3: 计票& 
广播 
Tlease Tlease Tcycle TT4 cycle 
Leader 改选 
T1 
1. 预投票: L1( 当前Leader) 在T1 发起改选leader 为 
L2 的申请 
2. 投票:成员收到leader 改选申请后在T2 时刻投票 
3. 计票& 广播: T3 时刻L1 计票,若L2 得票超过半数则 
L1 卸任并广播( 含旧新leader) ,否则选举失败( 将在 
lease 过期后进入无主选举) 
4. 选举结束:接收选举成功广播(L2 收到广播后立刻把自己 
设置为leader) ,在T4 时刻结束选举 
T4: 选举结 
束
连任//改选时机
TTlease lease TT TT1 
4 
cycle cycle Lease 从T1 时刻起,共m×Telect2(m>=4) 
Leader 自身扣除lease 的最后一个Telect2 
Leader 在lease 开始后2×Telect2 时刻发起连任/ 改 
选

Contenu connexe

Tendances

MySQL多机房容灾设计(with Multi-Master)
MySQL多机房容灾设计(with Multi-Master)MySQL多机房容灾设计(with Multi-Master)
MySQL多机房容灾设计(with Multi-Master)Lixun Peng
 
大型互联网站性能优化
大型互联网站性能优化大型互联网站性能优化
大型互联网站性能优化丁 宇
 
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术团队
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈Tim Y
 
豆瓣数据架构实践
豆瓣数据架构实践豆瓣数据架构实践
豆瓣数据架构实践Xupeng Yun
 
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...Ceph Community
 
Database.Cache&Buffer&Lock
Database.Cache&Buffer&LockDatabase.Cache&Buffer&Lock
Database.Cache&Buffer&LockLixun Peng
 
From Java Stream to Java DataFrame
From Java Stream to Java DataFrameFrom Java Stream to Java DataFrame
From Java Stream to Java DataFrameChen-en Lu
 
Ceph bluestore-tiering-2018-11-15
Ceph bluestore-tiering-2018-11-15Ceph bluestore-tiering-2018-11-15
Ceph bluestore-tiering-2018-11-15Jiaying Ren
 
1号店数据库架构
1号店数据库架构1号店数据库架构
1号店数据库架构Louis liu
 
Redis分享
Redis分享Redis分享
Redis分享yiihsia
 
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)Tim Y
 
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术C1000K高性能服务器构建技术
C1000K高性能服务器构建技术Feng Yu
 
Memcached vs redis
Memcached vs redisMemcached vs redis
Memcached vs redisqianshi
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践mysqlops
 
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践美团点评技术团队
 

Tendances (20)

MySQL多机房容灾设计(with Multi-Master)
MySQL多机房容灾设计(with Multi-Master)MySQL多机房容灾设计(with Multi-Master)
MySQL多机房容灾设计(with Multi-Master)
 
大型互联网站性能优化
大型互联网站性能优化大型互联网站性能优化
大型互联网站性能优化
 
Something about Kafka - Why Kafka is so fast
Something about Kafka - Why Kafka is so fastSomething about Kafka - Why Kafka is so fast
Something about Kafka - Why Kafka is so fast
 
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡
 
SMACK Dev Experience
SMACK Dev ExperienceSMACK Dev Experience
SMACK Dev Experience
 
Zabbix in PPTV
Zabbix in PPTVZabbix in PPTV
Zabbix in PPTV
 
Hbase
HbaseHbase
Hbase
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 
豆瓣数据架构实践
豆瓣数据架构实践豆瓣数据架构实践
豆瓣数据架构实践
 
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
Operation and Maintenance of Large-Scale All-Flash Memory Ceph Storage Cluste...
 
Database.Cache&Buffer&Lock
Database.Cache&Buffer&LockDatabase.Cache&Buffer&Lock
Database.Cache&Buffer&Lock
 
From Java Stream to Java DataFrame
From Java Stream to Java DataFrameFrom Java Stream to Java DataFrame
From Java Stream to Java DataFrame
 
Ceph bluestore-tiering-2018-11-15
Ceph bluestore-tiering-2018-11-15Ceph bluestore-tiering-2018-11-15
Ceph bluestore-tiering-2018-11-15
 
1号店数据库架构
1号店数据库架构1号店数据库架构
1号店数据库架构
 
Redis分享
Redis分享Redis分享
Redis分享
 
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
 
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
 
Memcached vs redis
Memcached vs redisMemcached vs redis
Memcached vs redis
 
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
 
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践
 

En vedette

高可用性系统设计与实现
高可用性系统设计与实现高可用性系统设计与实现
高可用性系统设计与实现everestsun
 
高可用性系统设计与实现
高可用性系统设计与实现高可用性系统设计与实现
高可用性系统设计与实现everestsun
 
Ocean base 破解数据库高可用难题
Ocean base 破解数据库高可用难题Ocean base 破解数据库高可用难题
Ocean base 破解数据库高可用难题everestsun
 
BigTable PreReading
BigTable PreReadingBigTable PreReading
BigTable PreReadingeverestsun
 
百度消息队列设计和实现总结
百度消息队列设计和实现总结百度消息队列设计和实现总结
百度消息队列设计和实现总结everestsun
 
Google LevelDB Study Discuss
Google LevelDB Study DiscussGoogle LevelDB Study Discuss
Google LevelDB Study Discusseverestsun
 
Leveldb background
Leveldb backgroundLeveldb background
Leveldb background宗志 陈
 
涨客资,用推策 推策产品介绍
涨客资,用推策 推策产品介绍涨客资,用推策 推策产品介绍
涨客资,用推策 推策产品介绍Baidu
 
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.1Hassy Veldstra
 
Baidu
BaiduBaidu
BaiduNanor
 
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...DataStax
 

En vedette (15)

高可用性系统设计与实现
高可用性系统设计与实现高可用性系统设计与实现
高可用性系统设计与实现
 
高可用性系统设计与实现
高可用性系统设计与实现高可用性系统设计与实现
高可用性系统设计与实现
 
Ocean base 破解数据库高可用难题
Ocean base 破解数据库高可用难题Ocean base 破解数据库高可用难题
Ocean base 破解数据库高可用难题
 
BigTable PreReading
BigTable PreReadingBigTable PreReading
BigTable PreReading
 
百度消息队列设计和实现总结
百度消息队列设计和实现总结百度消息队列设计和实现总结
百度消息队列设计和实现总结
 
Leveled compaction
Leveled compactionLeveled compaction
Leveled compaction
 
Google LevelDB Study Discuss
Google LevelDB Study DiscussGoogle LevelDB Study Discuss
Google LevelDB Study Discuss
 
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
 

Similaire à OceanBase-破解数据库高可用难题

Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten TrainingLi Chen
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计YANGL *
 
丁原:海量数据迁移方案
丁原:海量数据迁移方案丁原:海量数据迁移方案
丁原:海量数据迁移方案YANGL *
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流liu sheng
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaknuthocean
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践drewz lin
 
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引liu sheng
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换mysqlops
 
Delta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
Delta Lake Architecture: Delta Lake + Apache Spark Structured StreamingDelta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
Delta Lake Architecture: Delta Lake + Apache Spark Structured StreamingXiao Li
 
2009-02 Sharetech MS6X20
2009-02 Sharetech MS6X202009-02 Sharetech MS6X20
2009-02 Sharetech MS6X20peter
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展Sky Jian
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)ykdsg
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicecong lei
 
腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttcGeorge Ang
 
腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttctopgeek
 

Similaire à OceanBase-破解数据库高可用难题 (20)

Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
Cdc@ganji.com
Cdc@ganji.comCdc@ganji.com
Cdc@ganji.com
 
丁原:海量数据迁移方案
丁原:海量数据迁移方案丁原:海量数据迁移方案
丁原:海量数据迁移方案
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
20140326联动优势数据访问层DAL架构和实践7(刘胜)工行交流
 
Ocean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in chinaOcean base海量结构化数据存储系统 hadoop in china
Ocean base海量结构化数据存储系统 hadoop in china
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践
 
CDP方案介绍
CDP方案介绍CDP方案介绍
CDP方案介绍
 
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换
 
Delta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
Delta Lake Architecture: Delta Lake + Apache Spark Structured StreamingDelta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
Delta Lake Architecture: Delta Lake + Apache Spark Structured Streaming
 
2009-02 Sharetech MS6X20
2009-02 Sharetech MS6X202009-02 Sharetech MS6X20
2009-02 Sharetech MS6X20
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
 
deep inside Sina App Engine cloud service
deep inside Sina App Engine cloud servicedeep inside Sina App Engine cloud service
deep inside Sina App Engine cloud service
 
Sae
SaeSae
Sae
 
腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc
 
腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc
 

OceanBase-破解数据库高可用难题

Notes de l'éditeur

  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投票协议
  20. 任何数据复制方式不可突破的理论结果
  21. 选举:通过投票实现;投票:不只用于选举
  22. DB1的最后两条事务是否提交?要看具体情况 空事务投票完成后系统才可继续服务。为什么要写空事务?请看下回分解。
  23. 为什么要写一条空事务?