従来のPaxosおよびFast Paxosの正当性の証明


13

私はレスリー・ランポートによる「Fast Paxos」論文を読んでいますが、古典的なPaxosとFast Paxosの両方の正確性の証明に固執しています。

一貫性を保つため、値相にコーディネーターが選んだラウンドで満足しなければなりませんv2ai

CP(v,i):任意のラウンドのために、以外の値行われていないか、まだラウンドで選択される可能性があります。j<ivj


古典たPaxosために、プルーフ(ページ8)は、3つのケースに分割される:、と、、いくつかの受容体が相によってコーディネータに報告していた最大ラウンド数であるメッセージ。3番目のケースの議論を理解できませんでした:k<j<ij=kj<kk1b

ケース。帰納法によって、アクセプタがラウンドでに投票したときにプロパティ保持されたと仮定できます。これは、ラウンドで以外の値が選択されていないか、まだ選択されていないことを意味します。j<kCPa0vkvj

私の質問は:

  1. ラウンドでアクセプターがに投票したときに、プロパティ保持されていると仮定できるのはなぜですか?CPa0vk

私たちは数学的帰納法を使用しているようです、それで、基礎、帰納的仮説、帰納的ステップは何ですか?


Fast Paxosの場合、同じ引数(ページ18)が続きます。それは言います、

ケース。いずれかのためにで、以外の値行われていないか、まだラウンドで選択される可能性があります。j<kvVvj

私の質問は:

  1. これはどのように取得されますか?具体的には、なぜ「任意のためであるで、ここで」?vV

私の意見では、ケースの正しさの証明は、(再帰的に)およびの場合に依存しています。 j<kk<j<ij=k

したがって、どのようにケースの結論付けることができ第一証明なし(即ち、サブケースの欠落完全つ以上の値以上を含有しますか)?j<kj=kj=kV

回答:


10

アクセプタa0がラウンドkでvに投票したときに、プロパティCPが保持されていると仮定できるのはなぜですか?私たちは数学的帰納法を使用しているようです、それで、基礎、帰納的仮説、帰納的ステップは何ですか?

あなたは強い誘導のインスタンスを見ています。簡単な帰納法では、プロパティが成り立つと仮定し、n = m + 1で成り立つことを証明します。強力な誘導では、プロパティが成立すると仮定N N < Mとそれが成立することを証明のn = M + 1n=mn=m+1n:n<mn=m+1

根拠(私は信じる):。つまり、nullラウンド(ラウンドは1から始まるため)です。これは些細なことですが、それがおそらく明示的に述べられなかった理由です。j=0

誘導ステップ:想定。証明C P v ; j + 1 ここでj < iです。n,nj:CP(v;n)CP(v;j+1)j<i

信じられないかもしれませんが、これは単なる証明スケッチです。実際の証拠は、パートタイム議会の論文にあります。(紙を不可解であると考える人もいれば、ユーモラスであると考える人もいます。)


これはどのように取得されますか?

私の意見では、ケースの正しさの証明は、(再帰的に)k < j < iおよびj = kの場合に依存しています。j<kk<j<ij=k

したがって、どのようにケースの結論付けることができ第一証明なしJ = k個(即ち、サブケースの欠落完全J = K Vはつ以上の値以上を含有しますか)?j<kj=kj=kV

これも強力な帰納法なので、の場合はk < jおよびj = kの場合に依存しますが、帰納法の仮説、つまり前のPaxosラウンドからのものです。j<kk<jj=k


ランポートの証明に関する一般的なヒント。

ランポートは、階層的証明の手法を使用します。たとえば、7-8ページのプルーフの構造は次のようになります。

  • 仮定。証明C P v ; j + 1 ここでj < iです。 n,nj:CP(v;n)CP(v;j+1)j<i
    1. 観察1
    2. 観察2
    3. 観察3
    4. k=argmax(...)
    5. ケースk = 0
    6. ケースk> 0
      • ケースk <j
      • ケースk = j
      • ケースj <k

ランポートは、別のタイプの階層を使用する傾向があります。彼はより単純なアルゴリズムを証明し、より複雑なアルゴリズムがより単純なアルゴリズムにマッピング(または「拡張」)することを証明します。これは18ページでは発生していないようですが、注意が必要です。(18 ページのプルーフは、7-8ページのプルーフの修正であるように見えますが、その拡張ではありません。)

ランポートは強い誘導に大きく依存しています。また、数値でなく集合の観点から考える傾向があります。したがって、他の人がゼロまたはヌルを持つ空のセットを取得できます。または、他の人が追加する組合を設定します。

非同期メッセージパッシングシステムの正確性を証明するには、時間に関してシステムの全知的な見方が必要です。たとえば、ラウンドアクションを検討する場合、一部のラウンドj < iのアクションが一時的に発生しなかった可能性があることに注意してください。。それでも、Lamportはこれらの潜在的に将来の出来事を過去形で述べています。ij<i

Lamportsシステムとプルーフには、一方向にのみ許可される変数または変数のセットが含まれる傾向があります。数字のインクリメントとセットへの追加のみ。これは彼の証明で広く使用されています。例えば、8ページランポートショーで、彼は将来の能力去勢どのように別の投票をキャストすると:a

... メッセージの送信時にiに設定しているため、aはその後、iより小さい番号のラウンドで投票を行うことはできませんでした....rnd[a]iai

これらの種類のシステムを証明するのは、間違いなく脳のストレッチャーです。

(更新):不変式をリストします。ランポートは、開発時に多くの不変式とその証明を使用します。それらは証拠全体に散らばっていることがあります。マシンチェックされたプルーフにのみ存在することもあります。各不変式に関する理由; なんでそこにあるの?他の不変式とどのように相互作用しますか?システムの各ステップはどのようにこの不変を保持しますか?


完全開示:この質問への回答を求められるまで、Fast Paxosを読んでいませんでした。引用されたページのみを閲覧しました。私はエンジニアであり、数学者ではありません。Lamportの仕事の筆は、純粋に大規模な分散システムを正しく発明し、維持する必要性に基づいています。

私の答えは、Lamportの仕事の経験に大きく依存しています。私は、Lamportのプロトコルと証明のいくつかを読みました。私は専門的にpaxosベースのシステムを維持しています。私は、高スループットコンセンサスプロトコルを作成し、証明しました。また、それに基づいて専門的にシステムを維持します(会社に論文の発行を許可しようとしています)。私がしている私は彼三度と会った中で、ランポートと微々たる紙に協力(紙がまだピアレビューが保留されています。)


お時間をいただき、回答と、Lamportの証明に対する優れたコメントをありがとう!Paxosの場合:これで、Lamportの証明の基本的なアイデアをつかむことができます。しかし、私の心の中の時間の流れは戻ります。私たちはラウンドk = m a x を持っています。C P v i を証明するために、k < j < iおよびj = kの場合を調べ、C P v k 再帰的に証明します。ik=max()CP(v,i)k<j<ij=kCP(v,k)。つまり、は、別のk = m a x k < j < kおよびj = k ′の場合、およびC P v k )が含まれます。この再帰はk n = 0で終了します。このように、再帰はk上にありますCP(v,k)k=max()k<j<kj=kCP(v,k)kn=0ks。時間が進むにつれてそれを強い誘導に変換するのが難しい。
hengxin 2014

1
@hengxinシステム/証明について推論するとき。今後の時間として考えました。から始めて、すべての不変条件が満たされていることを確認します。その後、i = 1で、すべての不変条件が満たされていることを確認します。等々。これは、Lamportポインターをさらに追加することを思い出させます。i=0i=1
マイケルディアデューフ14

高速Paxosため)、その"誘導仮説であるV V C P V iは(参照" J < Kの中のケースP 18)?しかし、P 17の下部では、C P v i を満たすVのv見つけなければならない、と書かれています。それで、その帰納的仮説は強すぎますか?P18vV,CP(v,i)j<kP18P17vVCP(v,i)
hengxin 2014

最後に、不変式とは何か、そして強い帰納法がどのように機能するかを理解するようになりました。再度、感謝します。ところで、あなたはそれを言ったLamport tends to use another type of hierarchy. He'll prove a simpler algorithm, and then prove that a more complex algorithm maps onto (or "extends") the simpler algorithmので、あなたは例を示したり、関連する論文を引用してもらえますか?さらに、あなたの論文には(商業的に)未分類の版が事前に印刷されていますか?
hengxin 2014

1
ランポートは彼の論文「証明の書き方」で最初のタイプの階層を説明し、Paxosを洗練してByzantizingする2番目の例を示します。2番目のタイプの階層は通常洗練マッピングと呼ばれます。
マイケルディアード14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.