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:批准者
Acceptor
有N
个,Proposer
提出的value
必须获得超过半数(N/2+1)
的Acceptor
批准后才能通过。Acceptor
之间完全对等独立。
Learner:学习者
Learner
学习被批准的value
。所谓学习就是通过读取各个 Proposer
对 value
的选择结果,如果某个 value
被超过半数 Proposer
通过,则 Learner
学习到了这个 value
。这里类似 Quorum
议会机制,某个 value
需要获得 W=N/2 + 1
的 Acceptor
批准,Learner
需要至少读取 N/2+1
个 Accpetor
,至多读取N
个Ac
ceptor
的结果后,能学习到一个通过的value
。
以上是关于Paxos算法的提出的主要内容,如果未能解决你的问题,请参考以下文章