开发者社区 > 数据库 > 正文

在Paxos 协议 or Raft 协议中,阿里巴巴为什么选择了Paxos 协议?

在Paxos 协议 or Raft 协议中,阿里巴巴为什么选择了Paxos 协议?

展开
收起
詹姆斯邦德00 2021-12-17 12:13:18 487 0
1 条回答
写回答
取消 提交回答
  • 从下图右侧可以看到前面都在提交数据 X、后面来了数据 Y,在 S3 中先执行了 P3.1,P4.5,A4.5 Y,这意味着 Paxos 协议不一定要有序,而 Raft 是有序的。Raft 协议会要求 S3 先执行 P3.1、A 3.1 X 然后再执行 P4.5,A 4.5 Y。这是 Paxos 协议和 Raft 协议最大的不同。其次,Paxos 协议有三种角色,提交者(Propose),接收者(Accept)以及 Learn。阿里巴巴自研的 RDS 对这三种角色进行了转化,Propose 叫做 Leader,指的是可读可写的数据库节点,Accept 叫做Follower,多数派,有全量的数据,可以将自己变成 Leader。还有 Logger(阿里自研角色),只负责接收日志,没有数据。Leader 和 Follower 有全量数据,Logger 只是日志接收节点,如此 CPU 和内存成本就会降低。Learn 叫做 Learner,属于观察者角色,有全量数据但没有投票权,即使 Learner 挂掉,也不会影响 Learner 多数提交。

    image.png

    资料来源:《数据库:从趋势到实践》,链接:https://developer.aliyun.com/topic/download?id=1113

    2021-12-17 13:17:45
    赞同 展开评论 打赏
问答地址:

数据库领域前沿技术分享与交流

相关电子书

更多
PolarDB-X 基于 X-Paxos 一致性协议的高可用 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载