4

Paxos made simpleでは、ランポートはアルゴリズムのフェーズ 2 (a) を次のように説明しています。

プロポーザーがその準備要求 (番号 n) に対する応答を多数のアクセプターから受信した場合、値 v を持つ番号 n のプロポーザルを求めるアクセプターのそれぞれに受け入れ要求を送信します。ここで、v は最高値です。回答中の番号付きの提案、または回答が提案を報告しなかった場合は任意の値です。

  • これは、提案者は、提案番号に関係なく、受諾者の過半数から応答を集めたらすぐに受諾要求を送信できることを意味しますか? (引用の強調された部分は、そのことを暗示していると思います。なぜなら、同じ番号の提案はすべて同じ値を持つべきだからですよね?)
  • それとも、提案者は、多数の承認者から同じ提案番号で応答する必要がありますか? (つまり、番号m ( nより小さい) の応答は、番号nの応答の過半数にはカウントされません)
4

2 に答える 2

3

これは、提案者は、提案番号に関係なく、受諾者の過半数から応答を集めたらすぐに受諾要求を送信できるということですか? (引用の強調された部分は、そのことを暗示していると思います。同じ番号の提案はすべて同じ値を持つべきだからですよね?)

はい、提案者は、過半数の承認者からの応答を集めたらすぐに承認要求を送信できます。返された提案番号は、承認要求で送信する値を提案者に伝えます。

提案番号が返されない場合、提案者は自由に独自の値を選択できます。ただし、提案番号が返された場合、提案者は最大の提案番号に関連付けられた値を送信する必要があります。

これが例です。Propose(4)プロポーザーが 5 つのアクセプターに送信し、 を受け取りAck(abc, 2)Ack(abc, 2)を送信Ack(xyz, 3)する必要があるとしましょうAccept(xyz, 4)

于 2013-11-08T23:24:15.910 に答える
2

paxos では、提案番号、約束番号、承認番号を区別する必要があります。

応答には、提案番号と承認番号が含まれています。応答では、提案番号は提案と同じであり、受け入れられた番号は、Acceptor が以前に受け入れた番号です。

提案者は、承認者の過半数からの応答を収集するとすぐに、承認要求を送信できます。

すべての提案には一意の提案番号があり、提案者は値を含めずに提案を送信します。承認者は、同じ提案番号、承認された番号、および以前のラウンドで承認された値を応答します。次に、提案者は、応答の中で最大番号の提案の値として値を選択するか、応答が提案を報告しなかった場合は任意の値を選択します。

于 2013-11-08T16:15:42.407 に答える