【课程报告三】精读Paxos Made Simple(二)

        在了解P1和P2规则后,为了适用更多情况和解决存在的问题,P1和P2派生出的强化规则被提出。

        再次先更正一下P2的规则,除了上篇文章中的数字标志,任何数字标志大于之前的请求都包含之前v。(P2原文规则后半句:every higher-numbered proposal that is chosen has value v .)对于这层意思的不理解,造成了我对后半规则的忽略。

        且P2的a派生规则也只是将 【请求包含之前的v值】 加强到 【接受的值也包含之前的v值】。

P2a . If a proposal with value v is chosen, then every higher-numbered proposal accepted by any acceptor has value v .

同时因为要满足异步的需求,P2的b派生规则将 【系统内任何标志大于之前的的请求视为包含v】。

P2b . If a proposal with value v is chosen, then every higher-numbered proposal issued by any proposer has value v .

        所以目前P2的b派生规则最全面,接下来论文用归纳法证明其可行性。P2的c派生规则对其进行总结:对于任意v和n,如果一个值为v,编号为n的提案被发出,那么存在一个集合S,它由大多数接受者组成,且满足其一:

        (a) S中的任何接受者都没有接受编号小于n的提案

        (b) v是被S中的接受者接受的所有编号小于n的提案中编号最高的提案的值。

P2c . For any v and n, if a proposal with value v and number n is issued, then there is a set S consisting of a majority of acceptors such that either (a) no acceptor in S has accepted any proposal numbered less than n, or (b) v is the value of the highest-numbered proposal among all proposals numbered less than n accepted by the acceptors in S .

        对于P2系的规则,一直有一个疑问:为什么所有编号大于之前的请求要报之前请求的值,因为在之前简略了解的Paxos中似乎每个请求不用对之前的请求进行学习。对于这层意思的不理解,也造成了我之前对P2后半规则的忽略。

        接着下一段看,文章似乎给出了解释:了解已经被接受的提案很容易;预测未来的录取率很难。提议者不是试图预测未来,而是通过提取一个不会有任何这样的接受的承诺来控制未来。换句话说,提议者要求接受者不再接受任何编号小于n的提议。

        Learning about proposals already accepted is easy enough; predicting future acceptances is hard. Instead of trying to predict the future, the proposer controls it by extracting a promise that there won't be any such acceptances. In other words, the proposer requests that the acceptors not accept any more proposals numbered less than n.

且这样的要求引申出了我们之前简单介绍过的prepare和accept阶段

        prepare:提议者选择一个新的提案编号n,并向某个接受方集合中的每个成员发送请求,要求其响应

        (A)承诺不再接受编号小于n的提案

        (B)如果有接受的提案,则接受编号小于n的提案。

        accept:如果提议者从大多数接受者那里接收到请求的响应,那么它可以发出一个数字为n和valuev的提议,其中v是响应者中编号最高的提议的值,或者是提议者选择的任何值,如果响应者没有报告提议。提议者通过向一组接受者发送接受提议的请求来发出提议。(这不必是响应初始请求的同一组接受器。)

        那么,P1的a派生规则被提出:如果接收方没有响应编号大于n的准备请求,则可以接受编号为n的提议。

P1a . An acceptor can accept a proposal numbered n if it has not responded to a prepare request having a number greater than n.

在了解P1和P2系的规则后,就可以进行完整的Paxos的流程了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值