Paxos and Raft ABC
2020-01-02 08:14
543 查看
Paxos
Paxos是所有分布式环境中关于某个值达成一致的协议,Paxos 一个节点同时包括提议者和接受者。顾名思义:提议者是发起投票;接受者接受投票请求,根据投票请求和自身状态进行响应的回复。为了防止异常丢状态,Paxos在内部持久化三个参数:当前已接受的提案号;当前达成共识的value的值;当前最小的提案号。按照两阶段模式进行操作:
阶段一:Prepare(n) 请求 阻塞新来的老的提案
为什么可以这样?因为 分布式日志进来的时候,Acceptor 会把日志里带的请求里的提案号n和自己的最小提案号进行比较。如果前者大,会更新自己的最小的提案号,向提案者响应同意请求。
这样就保证了提案号小的IO请求永远不会得到Acceptor的响应,由于Propasl 的提案号都是递增的,保证了前者服从后者的原则。
提案者接受到了上面的请求之后,如果同意的数量达成了多数,接着广播Accept(n,val) 到所有Acceptor.
阶段二:Accept(n,val)
Acceptor 在这个阶段,会把自己的最小提案号和请求中的提案号n 比较一次。原则同上面阶段一,同意之后:除了更新自己的最小提案号为n之外,还用n 更新自己的已接受提案号,向提议者返回自己当前的最小的提案号。如果不同意,也向提议者返回自己当前的最小的提案号,拒绝请求。
如果提案者收到任何关于Accept(n,val)的拒绝响应,就需要重新发起投票(可能会更新自己的提案号)。 否则,表示val 广播到分布式系统中去,并且被大家接受。
相关文章推荐
- paxos, zab and raft(转载编辑)
- EBS中 ABC编制类型(标准)-编码和描述(Compile Type Code(Creiterion) and Description)。
- 分布式一致性算法---Paxos 和 Raft
- 分布式:2PC,3PC,Paxos,Raft,ISR [转]
- raft协议和paxos
- 今天朋友问我关于char数组为什么不是“good and abc”
- 2PC到3PC到Paxos到Raft到ISR
- good and Abc”的理解
- 2PC到3PC到Paxos到Raft到ISR
- [转]Raft [Why Not Paxos]
- 2D FDTD TE mode with a plane wave source and a PML ABC
- Zookeeper、Raft与Paxos
- raft-Response Analysis and Further Testing Tool(Python写的)
- 笔试题--“good and abc”
- 分布式一致性协议Raft,以及难搞的Paxos
- RAFT 与PAXOS区别
- rocksdb, raft and tidb
- 一片文章说明白分布式系统NRW,Paxos,Raft
- 望月新一IUT理论的科普视频:abc Conjecture and New Mathematics
- paxos zab raft个人理解