该文章来自于阿里巴巴技术协会(ATA)精选文章。

传统数据库通过共享存储保障主备库的数据一致性,去除共享存储后,由于网络、服务器、磁盘等的不可靠,数据库的主库与备库的数据一致性成为很大的挑战(更多信息参见下文“共享存储能否解决互联网数据库的一致性”)。OceanBase立足于互联网,必须解决互联网数据库的数据一致性问题,不仅要为淘宝、天猫等商业系统提供数据库,而且要为支付宝等金融系统提供数据库。

数据库数据一致性问题的根源是软件(操作系统软件、网络软件、应用软件等)和硬件(网络硬件、服务器硬件、磁盘等)的不可靠,因此解决这个问题的根本方法是冗余。传统RAID技术(例如RAID10,RAID5)等提供了较高的可靠性,但如果所在的服务器故障,则数据还是无法访问,因此也无法保证数据的高一致性。为了解决这个问题,OceanBase引入了云计算思路和Paxos协议,通过3个(或者更多节点)的投票来保证数据的高度一致,并兼顾服务的高可用,如下图:

上述三个机群构成一个数据库,其中一个是主机群,所有事务都由主机群的UpdateServer(称为主UpdateServer,其他UpdateServer称为备UpdateServer)执行,事务的redo log同步到3个UpdateServer中的超过半数(即至少2个,包括主UpdateServer自己),则事务成功并应答客户。如果3个UpdateServer中有一个故障:
*主UpdateServer故障:剩余的两个UpdateServer会自动选举出一个新的主UpdateServer(参见后文“OceanBase分布式选举的实现”),由于旧的主UpdateServer数据至少在一个活着的UpdateServer中存在,因此数据不会有任何丢失,两个活着的UpdateServer经过很短时间(通常是毫秒级)的相互同步后就可以继续对外服务,保证了数据的一致性和服务的高可用。
*单个备UpdateServer故障:主UpdateServer有全部数据,剩余两个UpdateServer仍然超过半数,数据一致性和服务都不受任何影响。
如果把上述三个机群部署出于三个不同的机房,那么即使一个机房出现电源、网络或者空调等故障,剩余两个机群仍然能够继续工作,数据一致性和服务可用性都不受影响。如果采用5机群部署,则系统甚至可以抵御2个机群的故障。

上述方案已经用于支付宝的交易库和其他核心系统并在线上生产运行中。

OceanBase如何解决支付宝数据库的高一致性相关推荐

  1. 分布式mysql保持数据一致性_一种分布式跨数据库保持事务一致性的方法及系统与流程...

    本发明涉及计算机网络技术领域,尤其涉及一种分布式跨数据库保持事务一致性的方法及系统. 背景技术: 目前,分布式服务架构十分的流行,特别是对于电商领域来说.他的优点就不多说了,但是随着集群机器的增加,集 ...

  2. SQL数据库从高版本到低版本的迁移,同时解决sql脚本文件太大无法打开的尴尬问题

    SQL数据库从高版本到低版本的迁移,同时解决sql脚本文件太大无法打开的尴尬问题 参考文章: (1)SQL数据库从高版本到低版本的迁移,同时解决sql脚本文件太大无法打开的尴尬问题 (2)https: ...

  3. 蚂蚁金服OceanBase性价比是传统数据库的十倍

    200名数据库领域从业三年以上的会员投票和专业的评委评选,在如此严苛的条件之下,蚂蚁金服金融级分布式关系数据库OceanBase 2.0依然获得了专家评审团的一致青睐,荣获2019中国数据库技术大会的 ...

  4. 如何基于OceanBase构建应用和数据库的异地多活

    如何基于OceanBase构建应用和数据库的异地多活 前言 OceanBase是一个通用的分布式的关系型数据库,有很多独特的特点.比如数据库的多租户.高可用.极致弹性伸缩能力.如果把OceanBase ...

  5. 2019DTCC大会分享:分布式数据库全局读一致性

    作者简介:李海翔,网名"那海蓝蓝",腾讯金融云数据库技术专家.中国人民大学信息学院工程硕士企业导师.著有<数据库事务处理的艺术:事务管理和并发访问控制>.<数据库 ...

  6. 数据库和缓存一致性的问题

    经常看到有人问怎么解决数据库和缓存一致性的问题,这个问题我觉得是不要去解决. 如果你不信你先看我列的几种情况 假设 数据库一开始和缓存都是1元. 用户更新数据库的同时双写缓存. 1.双写不删 写库充值 ...

  7. 数据库缓存最终一致性的四种方案

    数据库缓存最终一致性的四种方案 背景 缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景.而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到 ...

  8. MySQL数据库的高可用方案总结

    高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.虽然互联网服务号称7*24小时不间断服务,但多多少少有一些时候服务不可用,比如某些时候网页打不开,百度不能搜索或者无法 ...

  9. Mysql数据库的高可用

    本文来说下有关mysql数据库的高可用 文章目录 概述 主从或主主半同步复制 半同步复制优化 高可用架构优化 共享存储 分布式协议 本文小结 概述 高可用,即High Availability,是分布 ...

最新文章

  1. 点击量终于突破十万大关,以示庆贺,耶!!!
  2. golang net/http 超时机制完全手册
  3. [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用
  4. spec linux,linux – 在RPM包中SPEC文件中1%{?dist}的含义是什么?
  5. 你会等待还是离开(大理)---写的一个推文
  6. u盘启动 联想一体机_联想Y430pAT-ISE(H)U盘安装Win7系统教程
  7. PHP3.2.3 where or,WHERE · ThinkPHP3.2.3完全开发手册 · 看云
  8. java.net.URLEncode编码 与 URLDecode解码问题
  9. 无人机成为黑客的新工具,可黑掉部分家用的智能设备
  10. Linux内核分析课程期中总结
  11. vue2饿了吗之路第一篇:开发环境准备
  12. mysql数据库基础知识--入门必看
  13. [转]BT1120接口及协议
  14. Typora下载安装详细步骤
  15. flow.php 漏洞,php – 使用Apache的Flowplayer安全流
  16. Java中的Ant与Maven比较整理
  17. 短信验证码接口测试【接入之前必备工作】
  18. Java实现搭积木_Java搭积木游戏
  19. java 折线图_用Java绘制简单的折线图
  20. 动手学深度学习——4. 猫狗大战

热门文章

  1. python函数式编程中南大学_中南大学C++实践报告
  2. 365篇原创后,有三AI喊你正式加入来不来?
  3. 【caffe速成】caffe图像分类从模型自定义到测试
  4. 速卖通现在好做吗?深耕产品供应,优化售后发货才能走的更远
  5. vc6.0快捷键大全- -
  6. 粤港澳大湾区菜篮子-哲商对话·林裕豪:从玉农业谋定大健康
  7. 51单片机复习:矩阵键盘
  8. Spring(十二)之JDBC框架
  9. Spring MVC Servlet XML文件配置
  10. Windows校验文件哈希hash的两种常用方式