Paxos算法的提出

Posted 程序生活码农别致

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Paxos算法的提出相关的知识,希望对你有一定的参考价值。


二阶段提交还是三阶段提交都无法很好的解决分布式的一致性问题,直到Paxos算法的提出,Paxos协议由Leslie Lamport最早在1990年提出,目前已经成为应用最广的分布式一致性算法。Google Chubby的作者Mike Burrows说过这个世界上只有一种一致性算法,那就是Paxos,其它的算法都是残次品。

1、节点角色

Paxos 协议中,有三类节点:

  • Proposer:提案者

Proposer可以有多个,Proposer 提出议案(value)。所谓 value,在工程中可以是任何操作,例如“修改某个变量的值为某个值”、“设置当前 primary 为某个节点”等等。Paxos 协议中统一将这些操作抽象为 value。不同的 Proposer 可以提出不同的甚至矛盾的 value,例如某个 Proposer 提议“将变量 X 设置为 1”,另一个 Proposer 提议“将变量 X设置为2”,但对同一轮 Paxos 过程,最多只有一个 value 被批准。

  • Acceptor:批准者

AcceptorN个,Proposer提出的value必须获得超过半数(N/2+1)Acceptor批准后才能通过。Acceptor之间完全对等独立。

  • Learner:学习者

Learner学习被批准的value。所谓学习就是通过读取各个 Proposer value的选择结果,如果某个 value 被超过半数 Proposer 通过,则 Learner 学习到了这个 value。这里类似 Quorum 议会机制,某个 value 需要获得 W=N/2 + 1Acceptor 批准,Learner 需要至少读取 N/2+1Accpetor,至多读取N Acceptor的结果后,能学习到一个通过的value

以上是关于Paxos算法的提出的主要内容,如果未能解决你的问题,请参考以下文章

分布式核心原理:Paxos算法的通俗理解

Paxos算法与Zookeeper分析

分布式架构设计-06 分布式算法paxos

Zookeeper协议篇-Paxos算法与ZAB协议

Zookeeper协议篇-Paxos算法与ZAB协议

Paxos算法