トランザクション処理(全65問中24問目)

DBMSをシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
30.png

出典:平成28年秋期 問30

30a.png
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
トランザクションがコミットされると、DBMSはその更新情報をメモリ上のバッファとログファイルに書き出します。ログファイルについてはディスクへ即時書出しされますが、メモリバッファの内容については入出力効率向上のために、一定の間隔ごとにまとめてディスクに反映する方式をとっています。このディスクと同期を取るタイミングを「チェックポイント」といいます。この仕組みによりチェックポイント以前にコミットしたトランザクションに関してはディスクへの反映が保証されます。

チェックポイント法が使用されているDBMSでは、システム障害の発生後、システムを復帰したときはデータベースがチェックポイントの状態に戻っています。このとき、ロールバックとロールフォーワードを組み合わせて、データベースを障害発生直前の状態に回復する処理が行われます。
ロールフォワード(前進復帰)
障害発生前にコミットしたトランザクションは、更新後ログを使って、コミットの内容を反映させる
ロールバック(後退復帰)
障害発生時にコミットされていないトランザクションは、更新前ログを使って、トランザクション開始時の状態に戻す
図を見ると、T1はチェックポイント前にコミットしているのでリカバリは不要、チェックポイントから障害発生までの間にコミットされているT2・T5がロールフォワード、障害発生時にトランザクション実行中のT3・T4・T6がロールバックの対象ということになります。しかし、トランザクションの処理内容を確認すると、T3・T4はデータベースへの書込み処理がありません。書込みが行われない場合、更新前後のデータを記録したログ(ジャーナルファイル)が生成されませんから、チェックポイントまで戻った後にこれを削除する必要がありません。したがって、T3とT4はロールバックの対象外となります。
30_2.png
以上のことから、ロールフォワードで回復するのが「T2,T5」、ロールバックでトランザクション開始前に戻すのが「T6」と判断できます。したがって「ア」が正しい組合せです。

この問題の出題歴


Pagetop