コンピュータサイエンスにおいて、ライトアヘッドロギング(WAL )は、データベースシステムにおいて原子性と永続性(ACID特性の2つ)を提供する技術群である。[ 1 ]
ライトアヘッドログは、クラッシュやトランザクションのリカバリに使用される、追記専用の補助的なディスク常駐構造です。変更はまずログに記録され、データベースに書き込まれる前に、安定したストレージに書き込まれる必要があります。 [ 2 ]
ライトアヘッドログの主な機能は次のように要約できます。[ 3 ]
WAL(Webアクセスログ)を使用するシステムでは、すべての変更は適用される前にログに書き込まれます。通常、ログにはリドゥ情報とアンドゥ情報の両方が保存されます。
この目的は、例を挙げて説明できます。あるプログラムが何らかの処理を実行している最中に、実行中のマシンが停電したと想像してみてください。再起動後、そのプログラムは実行していた処理が成功したのか、部分的に成功したのか、失敗したのかを知る必要があるかもしれません。ライトアヘッドログを使用すれば、プログラムはこのログを確認し、予期せず停電した時点で実行中だった処理と実際に実行された処理を比較できます。この比較に基づいて、プログラムは開始した処理を取り消すか、完了させるか、現状維持するかを判断できます。
一定回数の操作が完了したら、プログラムはチェックポイントを実行し、WALで指定されたすべての変更をデータベースに書き込み、ログをクリアする必要があります。
WALを使用すると、データベースの更新をインプレースで行うことができます。アトミック更新を実現するもう1つの方法は、シャドウページングを使用することですが、これはインプレースではありません。更新をインプレースで行う主な利点は、インデックスやブロックリストを変更する必要性が減ることです。
現代のファイルシステムは通常、少なくともファイルシステムのメタデータにWALの派生版を使用します。これはジャーナリングと呼ばれます。