私は Paxos を調べていますが、この不自然な例でアルゴリズムがどのように動作するかについて混乱しています。下の図がシナリオを説明していることを願っています。
いくつかのポイント:
- 各エージェントは、提案者/受容者/学習者として機能します
- メッセージの形式を準備する
(instance, proposal_num)
- メッセージにフォームがあることを提案する
(instance, proposal_num, proposal_val)
- Server1 と Server2 の両方が同時に提案プロセスを開始することを決定します
- 最初に、メッセージ M1、M2、および M3 が同時に発生します。
ここでは、プロトコルが「正しい」、つまり 1 つの値のみS2
が選択されているにもかかわらず、サーバー 1 とサーバー 2 は、提案番号が異なるためにそれが選択されたと信じているようです。
Paxos アルゴリズムは、Decide(...)
メッセージが学習者に送信されたときにのみ終了しますか? 私はPaxos Made Simpleを誤解しているに違いありませんが、提案者がPropose(...)
メッセージの定足数を達成した瞬間に選択が行われたと思いました。
Decide(...)
メッセージがエージェントに送信された後にのみ選択が行われる場合、サーバー 2Decide(1, 5, S2)
は後でPrepare(1, 7)
.