|
イベント |
ログ バッファ |
データ バッファ |
ディスク |
|
トランザクションTの開始 |
[B:T] |
||
|
トランザクションTによる書込み |
[W:T,A,Old] |
WALプロトコロに従う限り、ダーティーページをフラッシュしてもよい |
|
|
write(A,x) |
|||
|
トランザクションTのコミット |
フラッシュ |
データを ディスクに書込 |
|
|
ログレコードへ書込み |
[C:T] |
||
|
ログレコードを フラッシュ |
フラッシュ |
ログを ディスクへ書込 |
リスタート後
ログから[C:T]がないトランザクションを探す
ログ中の[W:T,A,Old]に基づき、
before imageに書き戻す
システム
障害
ログに[C:T]がない
データの一部が
更新されている
この処理を
undoという