Paxos

目录

paxos the simple

之前也看过paxos的原版论文,确实看的不明所以。作者估计也是感觉到问题了,所以又来了个simple版本的,还特意强调The Paxos algorithm, when presented in plain English, is very simple :D

问题定义

在论文一开始,作者强调说这个本身是一个共识算法,其目标就是要保证在所有的提案中有唯一的一个会被确认。

  • 只有被提案的值才能被选中
  • 只有唯一的值能被选中
  • 只有被选中之后的值才能被集群中其他节点学习到

在整个集群中存在三种角色,proposer、acceptor和learners,每个节点可能承担一个或多个角色。同时,在算法中对模型做了一定的简化,假定了每个节点都能和对方通信,并且采用了非拜占庭模型,也就是说集群中不会有恶意节点(除非有bug,嘿嘿)。 对agent的假设如下:

  • 所有节点的操作速度不可控,并且节点可能失败并重启。因此节点需要有可靠的持久化能力
  • 消息到达的时间不可控,有可能重复,有可能丢失,但是不会有错误消息

选举