Paxos算法

一、什么是Paxos算法
Paxos算法是一种基于消息传递的且有高度容错性的一种算法,解决的问题是一个分布式系统如何就某个值(决议)达成一致。

二、Paxos算法中的三种角色
在Paxos算法中一共有三总角色:proposer、acceptor、learner;proposer负责提出提案;acceptor负责对提案做出裁决;leader负责学习得到提案;为了避免单节点故障,会有一个acceptor集合。proposer向该集合发送提案,当有一半以上的成员同意时,则同意该提案。、

三、Paxos算法的主要过程
主要过程如下:两部分:prepare阶段、acceptor阶段
prepare阶段:prepare提出编号为Mn的提案,向acceptor集合发送prepare请求。
acceptor做出反馈:保证不会在接受编号比Mn小的提案;如果acceptor已经批准过某提案,会向proposer返回已经批准的编号最大的提案的value值;如果acceptor收到一个编号为Mn的请求编号大于acceptor已经响应的所有prepare请求的编号,则它会将自己已经批准过的编号最大的提案值反馈给proposer,同时acceptor承诺不会在接受编号比Mn小的提案(优化,忽略编号小于已批准的提案的要求),如果proposer收到了集合至少少于一半的响应,则
会发送一个针对Mn、Vn的acceptor请求给acceptor。Vn为收到的所有响应中编号最大提案的值。如果响应不包括值,则可以由proposer进行选择任意值。
Accept阶段:Accept收到acceptor请求后,只要未收到任何编号大于M的prepare请求,则通过该提案。(Accept阶段接收提案的要求)

四、Paxos算法的应用
chubby(分布式锁服务、GFS中master选举)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 0.前言 本文记录笔者学习和理解区块链共识算法Paxos的点滴,文章比较长,需要耐心来细细琢磨,笔者也是苦战了一个...
    WallisW阅读 3,265评论 2 14
  • Paxos是什么 Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有...
    jiangmo阅读 1,550评论 0 6
  • paxos算法在分布式领域具有非常重要的地位。但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更...
    阿斯蒂芬2阅读 1,106评论 0 4
  • 原文链接:https://zhuanlan.zhihu.com/p/27335748 Paxos算法在分布式领域具...
    枫叶忆阅读 1,941评论 0 1
  • 来源:维基百科(https://zh.wikipedia.org/wiki/Paxos%E7%AE%97%E6%B...
    苍山雪麓阅读 405评论 0 0