我正在阅读论文 Paxos变得简单,但却被困在P2 b 的证明部分。
规则P2的内容 b :
如果选择了具有值v的提案,则任何提议者发布的每个更高编号的提案都具有值v。
这是Leslie Lamport的证明部分:
为了发现如何满足P2 b ,让我们考虑一下如何证明它是成立的。我们假设选择了具有数字m和值v的一些提议,并且表明任何提议的数字为n> m也有价值v。我们可以通过在n上使用归纳来使证明更容易,因此我们可以证明提议号n具有值v,在额外的假设下,每个提议都以m为单位发出。 。 (n - 1)具有值v,其中i。 。 j表示从i到j的数字集。对于选择编号为m的提议,必须有一些由大多数接受者组成的集合C,使得C中的每个接受者都接受它。将此与归纳假设相结合,选择m的假设意味着:
C中的每个接受者都接受了一个数字为m ..(n - 1)的提案,并且任何接受者接受的数字为m ...(n - 1)的提案都有价值v
所以归纳过程是:
为什么它意味着:
C中的每个接受者都接受了一个数字为m ...(n - 1)
的提案
我无法弥合差距, C 中的每个接受者为何需要接受 m ...中的数字提案。(n -1)?
P1 保证接受者必须接受收到的第一个提案, P2 a 保证只接受更高级别的提案具有所选价值的编号提案可以被接受者接受,但我只是不明白隐含声明的要点。
答案 0 :(得分:4)
这是整个正确性证明的图解说明。
醇>
这就是矛盾:根据阶段2a消息的规则,这意味着R中提出的值必须是X.
这可能看起来像是与Paxos Made Simple论文中的证据大不相同,因为它似乎是矛盾的,并且没有明确的归纳。实际上,这种技术“假设有一个反例,然后在第5步中考虑最小的这种”实际上只是伪装的归纳,而我的经验是,这是一种更容易呈现的方式。如果你喜欢那种东西,将这一步转变为明确的归纳是一项有趣的练习。
你问题中提到的集合C是发送阶段2b消息以接受P处的提议的接受者集合。这不一定与在R,发送阶段1b消息的集合相同,但是那些集合相交,这是重要的因素。
答案 1 :(得分:2)
根据该论文中的语言,它很容易被挂在细节上。我建议改为Understanding Paxos。它更加冗长,但它可以在没有设置符号或上标的情况下,通过算法和实际使用的周围问题来解决这些问题。
答案 2 :(得分:0)
C中的每个接受者都接受编号为m ..(n − 1)的提案 因为选择了具有值v的投标m,所以必须存在一个由大多数接受者组成的集合C,以使C中的每个接受者都接受它,并且m ..(n-1)包含m