选举协议paxos 协议 理解

Posted gfbppy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选举协议paxos 协议 理解相关的知识,希望对你有一定的参考价值。

  1. 获取一个Proposal ID n,为了保证Proposal ID唯一,可采用时间戳+Server ID生成;
  2. Proposer向所有Acceptors广播Prepare(n)请求;
  3. Acceptor比较n和minProposal,如果n>minProposal,minProposal=n,并且将 acceptedProposal 和 acceptedValue 返回;
  4. Proposer接收到过半数回复后,如果发现有acceptedValue返回,将所有回复中acceptedProposal最大的acceptedValue作为本次提案的value,否则可以任意决定本次提案的value;
  5. 到这里可以进入第二阶段,广播Accept (n,value) 到所有节点;
  6. Acceptor比较n和minProposal,如果n>=minProposal,则acceptedProposal=minProposal=n,acceptedValue=value,本地持久化后,返回;否则,返回minProposal。
  7. 提议者接收到过半数请求后,如果发现有返回值result >n,表示有更新的提议,跳转到1;否则value达成一致。

 

   理解: 设共有 2f+1个个体。则最多共可以产生f+1 个不同的value 值。

             证明:假设当前在 2f+1个个体 中已经产生了 f+1 个不同的value值。 由于第4步Proposer需要收到超过半数的回复,也就是说至少需要收到f+1个回复;

             也就可以简化成 从 2f+1 个个体中,的f+1 个子集中 获取 value 值,由于假设条件(已存在f个不同的value值),则这个value 值必定属于原来的f+1 value 值的集合中。所以永远无法产生 第f+2 个value 值

以上是关于选举协议paxos 协议 理解的主要内容,如果未能解决你的问题,请参考以下文章

Raft协议实战之Redis Sentinel的选举Leader源码解析

Raft协议实战之Redis Sentinel的选举Leader源码解析

分布式理论 - 一致性协议Raft

Raft原理与实现:简介选举与日志复制

Raft协议之领导者选举

ZAB协议工作机制与及他与PAXOS算法的区别