チェックポイントを取得するDBMSにおいて、図のような経過時間でシステム障害が発生し、前進復帰によって障害回復を行った。
前進復帰後のa、bの値は幾つか。
ここで、Tn は長方形の左右両端がそれぞれトランザクションの開始と終了を表し、終了時にCOMMITを行う。
また、長方形内の記述は処理内容を表す。
T1開始前のa、bの初期値は0とする。
a | b | |
ア | 1 | 0 |
イ | 1 | 2 |
ウ | 4 | 2 |
エ | 4 | 6 |
答え ウ
【解説】
障害の回復はまず、チェックポイントの状態に戻します。チェックポイントが行われたときはT1は終了してCOMMITし、T2は処理の途中なので、このときの状態はa=1、b=0です。
この後、ログ(ジャーナル)データを使い障害発生直前の状態に戻します。このとき、ログに残っているトランザクションは処理が終了しCOMMITしたものなので、T2とT3になり、a=4、b=2(ウ)になる。
なお、障害時に処理中だったトランザクションT4はロールフォワード終了後に最初からやり直す。
【キーワード】
・前進復帰