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