(四)图解 Paxos 一致性协议(1)

1.前言 

一致的起点难理解主要体现:为何如此设计协议以及如何证明其正确性

2.基本概念

两种Paxos:

(1)Single-Decree Paxos:决策单个 Value(本文只关注单 Paxos 的原理)

(2)Multi-Paxos:连续决策多个 Value,并且保证每个节点上的顺序完全一致,多 Paxos 往往是同事运行多个单 Paxos 协议共同执行的结果

2.1Paxos 协议中的三种角色( 可同时扮演 )

倡议者(Proposer):提出提议(数值或者操作命令)供投票表决

接受者(Acceptor):对提议投票,提议超半被选中

学习者(Learner):无投票权,从接受者获知哪个被选

2.2 Paxos 的特点

多个节点可提议

系统必须针对所有提案中的某个提案达成一致超过半数的接受者选中

最多确定一个提议一致

超半数节点存活且互相通信,整个系统一定能达成一致状态,选择确定提议

3. Paxos 实际应用过程


多个节点同时提出各自提议,从中选一个确定值,保证一致性。

五个节点分布式系统,A 提议 X 值E 提议 Y 值,其他没提。

Paxos-1

A 广播提议(也发自己),网络延迟,只A,B,C 收到了。即使 A,E 同时到达某个节点,必然有先后顺序不是真正“同时”

Paxos-2

A,B,C第一次接收提议,acceptedProposal 和 acceptedValue 都空

Paxos-3

A 已收到超半数节点响应acceptedValue 更新为 X

Paxos-4

A,B,C 会发生 minProposal A,A 检查发现没有大于 1 的 minProposal 出现,此时 X 已经被选中。D,E acceptedValue 不是 X不一致

Paxos-5

E 选择 Proposal ID 为 2 发送 Prepare 请求,和上面不一样了,C 已经接A ,不三心二意,告诉 E 它的选择,E 也选A,发起 Accept 请求一致

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容