OB有问必答 | OceanBase的一致性协议为什么选择 Paxos 而不是 Raft?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: “OB有问必答”是OceanBase最新上线的互动类栏目,每周围绕一个关于分布式数据库的议题为大家详细展开解答,如果你有任何感兴趣的问题,欢迎留言,我们会每周选取一个问题为大家详细解答。

分布式一致性协议(distributed consensus protocol)是迄今为止最有效的解决服务器不可靠问题的途径,因为它使得一组服务器形成一个相互协同的系统,从而当其中部分服务器故障后,整个系统也能够继续工作。而 Paxos 协议则几乎成了分布式一致性协议的代名词。

Paxos 协议有一个很大的设计假设,它要求支持多个投票,也就是数据库里的多条日志之间是可以乱序提交的,可以并行处理的。但是 Raft 协议做了一个约束,数据库的多个投票多条日志一定要按照顺序执行,只有前一个日志被确认了才能再确认后一个日志。Raft 协议给出了分布式一致性协议的一个比较简单的实现,这种简化使得 Paxos 协议走进了千家万户。

但是有得必有失,Raft 把这个约束变得更简单了以后,导致了两个问题,第一个问题是并发能力变差了。以前支持并发的提交,现在只能支持一个结束以后再进入下一个,所以它的性能变差了。第二个是可用性的问题。如果采用 Paxos 协议,当一台机器新上线的时候很快就能提供服务,因为不需要等前面的数据确认就能提供服务,但是如果使用的是 Raft 协议,需要等前面的所有日志确认以后才能提供服务,所以说 Raft 协议存在可用性的风险。在某些场景尤其是异地部署和比较差的网络环境下是有风险的。

在所有分布式系统里分为两个阵营,一个是 Paxos 的阵营,包括 Google Spanner,OceanBase 1.0 及其之后的版本,Amazon DynamoDB 等。另一个是 Raft 阵营,包括腾讯的 TDSQL 以及一系列的开源数据库,这其中基于 MySQL 的系统基本上都是通过 Raft 协议来实现的。

无论你选择 Paxos 阵营还是 Raft 阵营,其实都各自存在利弊,只有平衡好利弊,选择最适合自己的协议才能实现产品最终希望达到的目标。

P.s. 关于分布式数据库,所有你想了解的或者感兴趣的,欢迎留言,我们会每周为大家带来一期精选问题解答。下期见!

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
SQL 流计算 OceanBase
OceanBase CDC从热OB库采集过来的Tinyint(1)类型会默认转换成Boolean,请教一下,如果想转换成int类型,有什方法么?
【2月更文挑战第25天】OceanBase CDC从热OB库采集过来的Tinyint(1)类型会默认转换成Boolean,请教一下,如果想转换成int类型,有什方法么?
152 3
|
4月前
|
DataWorks API 数据库
DataWorks操作报错合集之在使用 OceanBase (OB) 作为数据源进行数据集成时遇到报错,该如何排查
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
存储 关系型数据库 数据处理
OceanBase数据库常见问题之start ob出错如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
4月前
|
DataWorks 关系型数据库 MySQL
DataWorks操作报错合集之从OceanBase(OB)数据库调度数据到MySQL数据库时遇到连接报错,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
存储 算法 Oracle
阿里的OceanBase数据库世界第一,底层原来使用了Paxos协议
前段时间相信都被阿里的OceanBase数据库刷屏了,它击败世界头号数据库厂商Oracle,登顶全球第一。先不看新闻内容,光是看标题就足以让人耳目一新了。又是“击败”,又是“第一”,又是“打破世界纪录”。即使是IT行业的门外汉,相信也会对这个消息感到振奋。但是你知道其底层其实使用的Paxos协议吗?如果你不知道也没关系,这篇文章主要就是让你理解Paxos协议到底是个什么东西?
1534 0
阿里的OceanBase数据库世界第一,底层原来使用了Paxos协议
|
SQL 运维 负载均衡
漫谈OB | OceanBase 在海量数据和高并发下的应用实践
数据库选型用 OceanBase 的原因很多,传统数据库上的业务做分布式数据库选型,其中一类原因是数据库遇到瓶颈。这类客户业务特点之一是数据量和访问量都很大。本文总结业务数据量和访问量大的业务场景下的OceanBase实践经验。 💡 本文适用于 OceanBase 企业版和社区版
1065 0
漫谈OB | OceanBase 在海量数据和高并发下的应用实践
|
存储 缓存 NoSQL
OB有问必答 | LSM Tree的技术原理是什么?OceanBase的存储引擎为什么基于LSM Tree?
相对于传统的page based数据库存储方式,OceanBase使用了现在非常流行的LSM Tree作为存储引擎保存数据的基本数据结构,这在分布式的通用关系型数据库当中是很少见的。今天我们就来为大家详细解读下LSM Tree的技术原理。
OB有问必答 | LSM Tree的技术原理是什么?OceanBase的存储引擎为什么基于LSM Tree?
|
存储 SQL 缓存
|
存储 SQL Oracle
OB有问必答 | 分区是什么?在OceanBase中起到了什么作用?
分区是一种水平拆分方案,是数据同步的最小单元,是高可用的最小单元,是高可用的最小单元。

热门文章

最新文章