关于paxos协议,看了很多资料,很少有流程图资料,试了画了一个,方便理解。如有错误欢迎指正。
一、节点角色
proposer:提案者-可以有多个, 但每一轮只能有一个被批准
acceptor:批准者- Proposer 提出的 value 必须获得超过半数(N/2+1)的 Acceptor批准后才能通过。
learner:学习者-学习被批准的value
二、流程图
三、实例演示
实例1:假设有有5 个 Acceptor,1 个 Proposer,不存在任何网络、宕机异常。我们着重考察各个Accpetor 上变量 B 和变量 V 的变化,及 Proposer 上变量 b 的变化。
1. 初始状态
2. Proposer 向所有 Accpetor 发送“Prepare(1)”,所有 Acceptor 正确处理,并回复 Promise(1, NULL)