🌌

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

2020/10/14に公開

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

今回は、「トークンリングネットワークの故障検出」についてまとめました。

<トークンリングネットワークとは>

リング状にプロセスが接続されているネットワークがあります。
そのネットワーク上に「トークン」が1つだけ流れています。
このトークンを使って通信するのが「トークンリングネットワーク」です。

トークンには通信可能を示す「フリー」状態と、
通信中を示す「ビジー」状態があります。

ここで、プロセス2がプロセス3へメッセージを送信する仕組みを紹介します。

プロセス2はフリー状態のトークンを捕まえて、メッセージを載せます。
トークンはメッセージを任されたので、お役目から解放されるまで「ビジー」になります。

プロセス3にトークンが到着するまで、トークンはネットワークを流れ続けます。

プロセス3はトークンを受信したら、受信フラグを設定します。

プロセス2は受信フラグを確認したら、トークンを「フリー」状態に戻します。

<故障の検出>
ここで、トークンリングネットワークが正常に動作している状態を定義します。
トークンリングネットワークは、トークンが動作の要となっています。
トークンが存在しない、もしくはトークンが複数存在すると、予期しない動作をする可能性があります。
よって、
「トークンリングネットワークが正しく動作している」ということは、
「トークンが1つしか存在しない」ことと同じ意味とします。

前回紹介した「分散スナップショット」を使えば、
システム全体のトークンの数が分かるので、
トークンの数が「1」以外の場合は「故障」していると言えます。

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

Discussion