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