平成26年春期試験午前問題 午前Ⅰ 問9

午前Ⅰ 問9解説へ
分散データベースにおいて図のようなコマンドシーケンスがあった。調停者がシーケンス a で発行したコマンドはどれか。ここで,コマンドシーケンスの記述にUMLのシーケンス図の記法を用いる。
am1/29.gif

  • COMMITの実行要求
  • ROLLBACKの実行要求
  • 判定コードの書出し要求
  • ログ書出しの実行要求
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
2相コミットプロトコルは、トランザクションを他のサイトに更新可能かどうかを確認する第1相と、更新を確定する第2相の2つのフェーズに分け、各サイトのトランザクションをコミットもロールバックも可能な中間状態(セキュア状態)にした後、全サイトがコミットできる場合だけトランザクションをコミットするという方法で分散データベース環境でのトランザクションの原子性・一貫性を保証する手法です。

具体的には、コミットの調整を行う1つのノードを「調停者」、ネットワーク上の他のノードを「参加者」として、次の手順でコミットが行われます。

[第1相(投票層)]
  1. 調停者となったノードはネットワーク上の他のノードにコミットの可否を問い合わせる。
  2. 全参加者は調停者にコミットの可否を応答する。
[第2相(決定相)]
  1. 全参加者からコミットの合意を得られた場合は、全参加者にコミットの実行要求を発行する。コミットの停止を応答した参加者がいた場合、またはタイムアウトとなった場合は、全参加者にロールバックの実行要求を発行する。
  2. 各参加者は、コミット(またはロールバック)の完了とともに調停者に処理完了のメッセージを送る。
  3. 調停者が、全参加者からの処理完了メッセージを受け取り、トランザクションの完了となる。
図をみると、調停者からのCOMMIT可否問合せに対して、システム1は「可」、システム2は「否」と応答しているので、すべての参加者から合意が得られなかった調停者は、システム1とシステム2に「ROLLBACKの実行要求」を発行してトランザクションを完了させます。
am1/29a.gif

Pagetop