Write-Ahead Log
ライトアヘッドログ(WAL)は、データページへ変更を適用する前に、追記専用のログへ変更を永続化する仕組みで、クラッシュ後のやり直し(redo)リカバリを保証する。
目的
トランザクションの永続性とクラッシュリカバリの礎であり、すべてのリレーショナルデータベースの中核機構である。
メカニズム
トランザクションはまずログ(LSNと変更内容)を書いてfsyncし、その後メモリ上のページを変更する。クラッシュ後はログを再生して、コミット済みトランザクションをやり直し(redo)、未コミットのものを巻き戻す(undo)。チェックポイントが古いログを切り捨てる。
ユースケース
- クラッシュリカバリの設計
- トランザクションの永続性
- データベースの内部構造