分散データベースのトランザクションは複数のサブトランザクションに分割され、複数のサイトで実行される。
このとき、トランザクションのコミット制御に関する記述のうち、適切なものはどれか。
ア |
2相コミットでは、すべてのトランザクションからコミット了承応答が届いても、必ずしもすべてのサブトランザクションをコミットするとは限らない。 |
イ |
2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきかわからない場合がある。 |
ウ |
2相コミットを用いると、サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。 |
エ |
集中型データベースのコミット制御である1相コミットで、個々のサイトが独自に分散データベースのコミットを行っても、サイト間のデータベースの一貫性は保証できる。 |
答え イ
【解説】
ア |
すべてのサブトランザクションからコミット了承応答が届けばすべてコミットされます。 |
イ |
装置故障や通信障害などにより、主サイトからの指示が届かないことがあるため、サブトランザクションをコミットすべきかロールバックすべきか分からない場合があります。 |
ウ |
サブトランザクションがロールバックされると、トランザクションもロールバックされます。 |
エ |
1相コミットではサイト間のデータベース(分散データベース)の一貫性は保証できません。 |
【キーワード】
・コミット
・2相コミットプロトコル
【キーワードの解説】
- コミット(commit)
データベースにおいて、データベース操作処理(トランザクション)による、データベースの内容変更を恒久的なものとして確定させることです。
ロールバック処理は、変更した内容を最後にコミットしたところまで、ジャーナルデータに基いて戻す処理になります。
ロールフォワード処理は、最後にコミットしたところから、ジャーナルデータに基いて処理を行うことです。
- 2相コミットプロトコル(Two-Phase Commit Protocol)
分散システムにおいて、全データベースがトランザクション終了時に同時にコミットするための手順のことです。
2相コミットプロトコルでは、まず処理全体を管理する調停者が、参加者に対し、コミットが行えるか問い合わせ(フェーズ1)、全ての参加者から「準備完了」の応答があったら、コミットを行うことを参加者に要求(フェーズ2)し、コミットが行われる。
参加者のどれかで問題が発生した場合には、ロールバック処理で処理の撤回を行う。
もっと、「2相コミット」について調べてみよう。
戻る
一覧へ
次へ
|