IPA公式正解:イ 2相コミットを用いても,サブトランザクションが実行されるサイトに主サイトの指示が届かず,サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【イ】です。2相コミットでは、コミット要求フェーズ(第1相)で合意が得られた後でも、第2相のコミット/ロールバック指示が通信障害等で届かない場合、参加サイトは状態を確定できずブロック状態(不確定状態)に陥ることがあります。
【詳細解説】■ 本問の核心・解法のポイント
分散データベースにおける「2相コミットプロトコル(2-Phase Commit)」の動作と課題に関する問題です。2相コミットは調停者(主サイト)と参加者(副サイト)の間で「第1相:コミット準備(投票)」と「第2相:コミット/ロールバック実行」の2段階で合意を形成します。しかし、調停者が指示を出した直後に障害が発生したり、ネットワーク分断が起きたりすると、副サイトは主サイトの決定を知ることができず、コミットすべきかロールバックすべきか判断できない「ブロッキング問題」が発生します。
・各選択肢の徹底解説:
・ア:第1相ですべてのサイトから了承応答(コミット可)が届いた場合、主サイトは全サイトに対して必ず一律に「コミット」を指示します。異なる指示を出すことはありません。
・イ:【選択肢イ★】調停者のクラッシュやネットワーク障害によってコミット/ロールバックの指示が届かない場合、副サイトは処理を自律的に確定できず、不確定状態となります。
・ウ:2相コミットでは、1つでもロールバック(否認)を応答したサイトがあれば、トランザクション全体がロールバックされます。一部がロールバックされて全体がコミットされることはありません。
・エ:分散データベースにおいて1相コミットで各サイトが独自にコミットを行うと、一部サイトのコミット失敗時にサイト間で不整合が生じるため、一貫性は保証できません。
よって正解はイです。