平成23年特別試験問題 午前Ⅱ 問12

分散データベースシステムにおいて,複数のデータベースを更新する場合に用いられる2相コミットの処理手順として,適切なものはどれか。

  • 主サイトが各データベースサイトにコミット準備要求を発行した場合,各データベースサイトは,準備ができていない場合だけ応答を返す。
  • 主サイトは,各データベースサイトにコミットが可能であることを確認した後,コミットを発行する。
  • 主サイトは,各データベースサイトにコミットを発行し,コミットが失敗した場合には,再度コミットを発行する。
  • 主サイトは,各データベースサイトのロックに成功した後,コミットを発行し,各データベースサイトをアンロックする。
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
2相コミット(Two Phase Commit)は、トランザクションのコミットを次の2つのフェーズに分けて行うことで、分散データベース環境でのトランザクションの原子性・一貫性を保証する仕組みです。
第1フェーズ
他のサイトに更新可能かどうかを確認する
第2フェーズ
全サイトからの合意が得られた場合に更新を確定する
具体的には、コミットの調整を行う1つのノードを「調停者(主サイト)」、ネットワーク上の他のノードを「参加者(従サイト)」として、次の手順でコミットが行われます。
  1. 調停者となったノードは、ネットワーク上の他のノードにコミットの可否を問い合わせる。
  2. 全参加者からコミットの合意を得られた場合は、全参加者にコミットの実行要求を発行する。コミットの停止を応答した参加者がいた場合、またはタイムアウトとなった場合は、全参加者にロールバックの実行要求を発行する。
  3. 各参加者は、コミット(またはロールバック)の完了とともに調停者に処理完了のメッセージを送る。
  4. 調停者が、全参加者からの処理完了メッセージを受け取り、トランザクションの完了となる。
12.png
  • 各データベースサイトは、必ずコミットの可否(Yes/No)を調停者に返答します。
  • 正しい。
  • コミットが失敗した場合には、各データベースサイトにロールバックの実行要求が発行されます。
  • 主サイトは各データベースサイトにロックをかけるわけではありません。

この問題の出題歴


Pagetop