Paxos算法

1、什么是Paxos算法

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

2、Paxos算法中的三种角色

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

 

3、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阶段接收提案的要求)

4、Paxos算法的应用

chubby(分布式锁服务、GFS中master选举)

相关文章
相关标签/搜索