(四)图解 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 实际应用过程


(四)图解 Paxos 一致性协议(1)_第1张图片

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

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

(四)图解 Paxos 一致性协议(1)_第2张图片
Paxos-1

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

(四)图解 Paxos 一致性协议(1)_第3张图片
Paxos-2

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

(四)图解 Paxos 一致性协议(1)_第4张图片
Paxos-3

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

(四)图解 Paxos 一致性协议(1)_第5张图片
Paxos-4

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

(四)图解 Paxos 一致性协议(1)_第6张图片
Paxos-5

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

(四)图解 Paxos 一致性协议(1)_第7张图片

你可能感兴趣的:((四)图解 Paxos 一致性协议(1))