IPA過去問ドリル

平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

テクノロジ/データベース

データベース更新における2相コミットに関する記述のうち,適切なものはどれか。

出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

正解:イ

解説

2相コミットは,分散データベースにおいて複数サイトにまたがるトランザクションを確実に一貫した形でコミット又はロールバックさせるためのプロトコルです。第1相(準備フェーズ)で,コーディネータ(主サイト)が各参加サイトに対して「更新をコミットできるか」を問い合わせ,全参加サイトから準備完了(コミット可能)の応答を得られた場合にのみ,第2相(コミットフェーズ)で実際のコミット指示を出します。

選択肢ごとの解説

  • 誤り。トランザクション処理途中のデータを他のトランザクションから参照できなくする制御は,ロック機構など同時実行制御の役割であり,2相コミットの説明ではありません。
  • 正しい。2相コミットの第1相(準備フェーズ)では,コーディネータが各参加サイトに対して更新可能かどうかを問い合わせ,全サイトからの応答を確認するためのやり取りが必要です。
  • 誤り。準備フェーズでいずれかの参加サイトが更新不可能と応答した場合など,2相コミットを採用していてもロールバックが発生することがあります。
  • 誤り。通信異常(ネットワーク障害)が発生すると,参加サイトがコミットの最終指示を受け取れず,コミットすべきかロールバックすべきか判断できない不確定状態(in-doubt)に陥ることがあり,必ずコミットさせられるわけではありません。
データベーススペシャリストの過去問を演習モードで解く