分散トランザクション処理で利用される2相コミットプロトコルでは、コミット処理を開始する調停者(coordinator)と、調停者からの指示を受信してから必要なアクションを開始する参加者(participant)がいる。
この2相コミットプロトコルに関する記述のうち、適切なものはどれか。
ア |
参加者は、フェーズ1で調停者にコミット了承の応答を返してしまえば、フェーズ2のコミット要求を受信しなくても、ローカルにコミット処理が進められる。 |
イ |
調停者に障害が発生するタイミングによっては、その回復処理が終わらない限り、参加者全員がコミットもロールバックも行えない事態が起こる。 |
ウ |
一つの分散トランザクションに複数の調停者及び参加者が存在し得る。
例えば、5個のシステム(プログラム)が関与している場合、調停者数が2、参加者の数が3となり得る。 |
エ |
フェーズ1で返答のない参加者が存在しても、調停者は強制的にそのトランザクションをコミットすることができる。 |
答え イ
【解説】
ア |
参加者は、フェーズ2のコミット要求を受信してからコミットを行う。 |
イ |
調停者がフェーズ1の問い合わせ実施後に障害が発生すると、参加者はフェーズ2待ちで止まってしまい、調停者の回復を待つことになる。 |
ウ |
2相コミットプロトコルで調停者は必ず1つである。 |
エ |
調停者はフェーズ1の問い合わせに対し、全参加者から応答を受信しないと、フェーズ2のコミット要求は行えない。 |
【キーワード】
・コミット
・2相コミットプロトコル
【キーワードの解説】
- コミット(commit)
データベースにおいて、データベース操作処理(トランザクション)による、データベースの内容変更を恒久的なものとして確定させることです。
ロールバック処理は、変更した内容を最後にコミットしたところまで、ジャーナルデータに基いて戻す処理になります。
ロールフォワード処理は、最後にコミットしたところから、ジャーナルデータに基いて処理を行うことです。
- 2相コミットプロトコル(Two-Phase Commit Protocol)
分散システムにおいて、全データベースがトランザクション終了時に同時にコミットするための手順のことです。
2相コミットプロトコルでは、まず処理全体を管理する調停者が、参加者に対し、コミットが行えるか問い合わせ(フェーズ1)、全ての参加者から「準備完了」の応答があったら、コミットを行うことを参加者に要求(フェーズ2)し、コミットが行われる。
参加者のどれかで問題が発生した場合には、ロールバック処理で処理の撤回を行う。
もっと、「コミット」について調べてみよう。
戻る
一覧へ
次へ
|