- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OceanBase-破解数据库高可用难题 郁白
OceanBase-破解数据库高可用难题
郁白
yubai.lk@
Agenda
数据库高可用的意义
传统数据库的高可用方案
OceanBase的高可用方案
OceanBase1.0技术展望
数据库高可用的意义
数据可靠性前提:保证数据不丢失
数据可用性:保证数据可访问
故障不可避免
数据库高可用的意义
几个“九”的认识
数据库高可用的意义
5个9的可用性
5.25分钟意味着什么?
- 5.8亿
- 17万条内裤
- 伤百万用户的心
传统数据库的高可用方案
单机高可用
- 高可用硬件:小型机+高端存储
- 硬件冗余:多路冗余电源和网络
机群高可用
- 1主N备
- 可选的备份模式
- 最大保护,最高性能,最大可用
问题
- 昂贵
- 谁来选主?
- 不可调和的数据可靠性与可用性矛盾
OceanBase的高可用方案
总体架构
RedoLog同步
分布式选举
多级Lease时间分析
OceanBase的高可用方案
总体架构
- RootServer自己选主,无状态
- UpdateServer由RootServer选主
OceanBase的高可用方案
总体架构
OceanBase的高可用方案
UpdateServer基于投票的RedoLog同步
- N个副本,多数派(N+1)/2同步成功即成功
- 不影响数据可靠与服务可用的宕机数量:1/3,2/5,3/7
- 依赖一个逻辑上的单点(RootServer)选主
- 主机由RootServer选择产生,使用lease维护
- 主机产生LogID连续的日志来同步到备机
- RootServer在多数派中以日志的TimeStamp为优先级选主
OceanBase的高可用方案
UpdateServer基于投票的RedoLog同步
- 顺序应答与乱序应答的折中
- 顺序应答:实现简单,对网络抖动的容忍度低
- 乱序应答:调序与补偿逻辑复杂,性能好,对网络抖动的容忍度高
- 关键细节
- 备机回放的条件
- 主机未决日志的补偿
- 备机未决日志的覆盖
- “幽灵复现”
- 顺序应答的性能优化
OceanBase的高可用方案
RootServer的分布式选举
- 原则:选举保证任意时刻最多只能有一个Leader
- 投票:得到多数派(N+1)/2的人成为Leader
- 关键细节:
- 对时钟的依赖:lease与心跳的折中
- 选举时机的选择:避免选举分裂,支持投票权重
- 成员投票不自相矛盾的保证:持久化与非持久化的折中
- 折中的方案,保证简单的设计:
- 选举窗口,不设心跳,不写日志,依赖时钟
- 支持权重
OceanBase的高可用方案
RootServer的分布式选举时序分析
- 时钟误差最大为Tdiff,网络网路传输单程最长耗时为Tst
- 收到预投票消息的时间区间[T1-Tdiff×2,T1+Tdiff×2+Tst=T2]
- 收到投票消息的时间区间[T2-Tdiff×2,T2+Tdiff×2+Tst=T3]
- 收到广播消息的时间区间[T3-Tdiff×2,T3+Tdiff×2+Tst=T4]
- 选举耗时Telect=T4-T1=Tdiff×6+Tst×3
OceanBase的高可用方案
RootServer的分布式选举周期分析
- 时钟偏差Tdiff=100ms,网络单程传输Tst=200ms
- 选举耗时Telect=Tdiff×6+Tst×3=1200ms
- 扩展的选举耗时Telect2=Telect+200=1400ms
- Tlease=4×Telect2=5600ms,从T1开始
- 无主选举周期Tcycle=5×Telect2=7000ms
OceanBase的高可用方案
RootServer的分布式选举时钟分析
- 对时钟误差的容忍:Tdiff = (Telect2+T3-T1) ,即2200ms
- 最长恢复时间: (Tlease+ Tcycle+Telect) 约两个选举周期,即14000ms
OceanBase的高可用方案
多级Lease时间分析
- 多级Lease系统:上级server给下级server授予lease
- 假设:
- 第i层系统的lease时间为L(i)
- 最长不可服务时间为D(i)
- Lease renew间隔为T(i)
- D(i) = L(i) + D(i-1)
- 上级server宕机不影响下级server的Lease
您可能关注的文档
- FileUpLoad控件简介.ppt
- FDA医疗器械法规讲座(推荐).ppt
- fluidSiM安装破解过程——液压与气动仿真软件.ppt
- Excel金融应用(讲座).ppt
- FORMEL-Q一汽大众供应商质量评定能力2012年1月.ppt
- G3“低碳达人”节油挑战赛初赛活动总结2010.12.20.ppt
- FBI教你破解身体语言(推荐).ppt
- GB-7258-2012《机动车安全运行技术条件》强制性标准要求介绍2014年04月11日.ppt
- GB-T50430-2007培训工程建设施工企业质量管理规范宣贯.ppt
- G-猫眯智能机器人项目介绍(PPT课件).ppt
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)