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