ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Paxos协议理解

2021-02-20 23:01:38  阅读:227  来源: 互联网

标签:协议 Prepare Accept Proposer 理解 提案 Paxos Acceptor


Paxos协议要点

  • Paxos协议中共有三种角色:Proposer、Acceptor、Learner,具体实现中一个进程可担当多个角色。

  • Paxos协议的目的:针对同一主题,每个Proposer都可提出若干提案,所有的Acceptor和Learner必须从这些提案中一致选定某个提案。

  • 某个提案被选定成功的定义:此提案被超过半数Acceptor 批准

  • Paxos的第一个Prepare阶段的目的是确定Proposer如何生成提案。这实际上涉及到Paxos协议的推导,可参考《从Paxos到Zookeeper 分布式一致性原理与实践》。即Prepare阶段是提案生成阶段

    提案生成算法如下,此算法保证了如果某个提案[M0, V0]被选定后,之后Proposer提出的任何编号大于M0的提案,其值一定是V0。
    在这里插入图片描述

  • Paxos的第二个Accept阶段的目的是将生成的提案发送给所有Acceptor批准,如果超过半数Acceptor都批准了,则此提案被选定成功。即Accept阶段是提案选定阶段

  • 一个提案已经被超过半数Acceptor批准,但是Proposer可能并不知道提案已经被选定成功,因为Accept阶段,大多数Acceptor返回的响应可能在网络中丢失。但是所幸的是Prepare阶段的提案生成算法保证了Proposer新的提案的值一定为已经选定的提案的值。

  • Acceptor对于Prepare和Accept请求的响应原则:Acceptor可以成功响应编号大于当前Acceptor记录过最大编号的提案请求(Prepare和Accept请求)。响应过程可参考以下流程图。

Paxos算法陈述

在这里插入图片描述
在这里插入图片描述

Paxos算法流程图

  • K为提案编号
  • MaxN为Acceptor所记录的最大提案编号
  • AcceptN为Acceptor所批准的提案编号
  • AcceptV为Acceptor所批准的提案的值。
    在这里插入图片描述

Paxos协议缺陷

多个Proposer竞相提案,陷入死循环:
在这里插入图片描述
解决方法:选举主Proposer,只有主Proposer才能进行提案,即Multi-Paxos、Raft等协议。

标签:协议,Prepare,Accept,Proposer,理解,提案,Paxos,Acceptor
来源: https://blog.csdn.net/qq_41775852/article/details/113899011

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有