コンテンツへスキップ
uencoder

Write-Ahead Log

ライトアヘッドログ(WAL)は、データページへ変更を適用する前に、追記専用のログへ変更を永続化する仕組みで、クラッシュ後のやり直し(redo)リカバリを保証する。

目的

トランザクションの永続性とクラッシュリカバリの礎であり、すべてのリレーショナルデータベースの中核機構である。

メカニズム

トランザクションはまずログ(LSNと変更内容)を書いてfsyncし、その後メモリ上のページを変更する。クラッシュ後はログを再生して、コミット済みトランザクションをやり直し(redo)、未コミットのものを巻き戻す(undo)。チェックポイントが古いログを切り捨てる。

ユースケース

  • クラッシュリカバリの設計
  • トランザクションの永続性
  • データベースの内部構造

関連ツール

References