WAL 【Write-Ahead Logging】 WALプロトコル
概要
WAL(Write-Ahead Logging)とは、データベースにおけるトランザクション処理で、これから行う処理のログを先に記録する仕組み。処理が意図せず中断した際に整合性を保つことができる。RDBMSの機能として提供される。トランザクション処理は複数の関連する処理を一体化し、「すべて完了」か「すべて実施前」のいずれかになることを保証する仕組みである。ある口座から出金して別の口座へ入金する場合など、途中で中断しては困る手続きなどに適用される。
WALはトランザクションの整合性を維持する仕組みの一つで、これから実施する操作のログを専用の記録領域に書き込む。システム障害などにより処理途上で中断してしまった場合は、復旧後にログの内容と現在の状態を突き合わせ、開始前の状態に戻すロールバック処理か、途中から処理を再開するロールフォワード処理を実行することができる。
通常はデータベース管理システム(DBMS)の機能の一つとして提供され、PostgreSQLなどでは「WAL」の名称が用いられるが、Oracle Databaseでは「REDOログ」がWAL機能に相当する。ファイルシステムでも同様の仕組みで記録内容の整合性を保証する場合があり、「ジャーナリング」(journaling)と呼ばれる。
(2024.7.29更新)