👻

分散処理を勉強した記録~その25~

2021/03/20に公開

この記事は、
「分散処理システム」著:真鍋義文 森北出版株式会社
を参考にしています。

今回は、「途中での停止故障あり同期システムの合意」についてです。

前回の停止故障あり同期システムでの合意では、
以下のような例では全員同じ値になることができないという欠点があります。

プロセスP3がP1に値を送信した後、
停止故障になってしまうと、
P1の合意値とそれ以外の合意値が異なる結果になります。

これを防ぐために、
各プロセスが以下のパラメータを保持することにします。
・自分の初期値
・全体の値のリストlist
・停止故障の上限値t

まず、プロセスP1がP2にリストを送信します。

P1からのリストを受信したP2は、リストを更新します。

次に、P3がP1にリストを送信します。

その後、P1はリストを更新しますが、
P3は停止故障してしまいます。

それからP2とP4がリストを送信し合い、
P1にリストを送信すると以下のようになります。

ここからP1がP2とP4にリストを送信します。

すると、P3が停止故障しているにも関わらず、
P3以外は全て同じ値で合意することができます。

今回はここまでです。ありがとうございました。

Discussion