在论文中混淆P2b证明过程Paxos变得简单

时间:2017-06-03 07:10:42

标签: algorithm paxos

我正在阅读论文 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

  

所以归纳过程是:

  • 基本案例:已选择 m 的提案 v
  • 归纳步骤:数字 m ..(n-1)中的任何提案都具有值 v

为什么它意味着:

  

C中的每个接受者都接受了一个数字为m ...(n - 1)

的提案

我无法弥合差距, C 中的每个接受者为何需要接受 m ...中的数字提案。(n -1)

P1 保证接受者必须接受收到的第一个提案 P2 a 保证只接受更高级别的提案具有所选价值的编号提案可以被接受者接受,但我只是不明白隐含声明的要点。

3 个答案:

答案 0 :(得分:4)

这是整个正确性证明的图解说明。

  1. 假设已经学习了两个提议的值,编号为P和Q,其中P <问:
  2. step 1

    1. 此外,假设矛盾的是P学到的值是X,Q学到的值是Y,其中X≠Y:
    2. step 2

      1. 这意味着为P和Q建议的值分别为X和Y.每个提案最多只能有一个值:
      2. step 3

        1. 现在考虑P和Q之间提出的所有其他提案:
        2. step 4

          1. 设R为第一个值为≠X的提案。有希望的是,P&lt; R≤Q:
          2. step 5

            1. 换句话说,提议编号≥P且<&lt; R都有值X:
            2. step 6

              1. 设S是在P处发送阶段2b消息的节点集(在你的问题中S被称为C,但我已经绘制了这些图片,所以我坚持使用S)。由于多数重叠,因此这组节点必须与在R:
              2. 发送1b阶段消息的节点集重叠

                step 7

                1. 考虑重叠中的一个节点。在在R发送1b阶段消息之前,它必须在P 发送了阶段2b消息,因为这是1b阶段消息的用途。
                2. step 8

                  1. 它可能已经为编号为&gt; P的提案发送了阶段2b消息,但是不能为编号≥R的提议发送一个消息,因为这是1b阶段消息的规则。但是所有≥P和

                    step 9

                    1. 现在考虑为提案R发送1b阶段消息的所有其他节点。其中一些节点可能已接受以前的提议;有些人可能接受了编号为&lt; P,但他们都接受了编号为&lt; R并且其中至少有一个接受了提案≥P,因此其中任何一个接受的编号最高的提案都有价值X:
                    2. step 10

                      这就是矛盾:根据阶段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