スポンサーリンク

【応用情報技術者試験】WALプロトコル

WALプロトコルとは、データベースのトランザクション処理において、データの更新を行う前に、その変更内容を記録したログを先に書き出す仕組み(ログ先行書き込み)のことです。これにより、システム障害が発生した場合でも、ログを元に処理を再実行(ロールフォワード)したり、中断したりした状態に復旧(ロールバック)したりして、データの整合性を保つことができます。 

WALプロトコルの主な特徴

  • ログの先書き: 実際にデータファイルを更新する前に、トランザクションの内容(更新前ログ)を、ログファイルに書き出します。
  • 整合性の確保: トランザクションの完了(コミット)前にシステム障害が起きても、ログがディスクに記録されているため、データベースの回復が可能です。
  • リカバリ: 障害発生時、ログに記録された情報に基づいて、中断した処理を再実行したり(ロールフォワード)、元の状態に戻したりします(ロールバック)。
  • パフォーマンスの向上: メモリ上でのデータ更新とログへの書き出しは高速に行われ、実際のデータファイルへの書き込みは、ある程度まとめて行われるため、パフォーマンスが向上します。
  • 応用: データベースのトランザクション処理だけでなく、ファイルシステムにおけるジャーナリングなど、他のシステムでも同様の考え方で整合性が保証されています。 

WALの例

  • PostgreSQL: 「WAL」という名称で、耐久性と整合性を保証するコア機能として提供されています。
  • Oracle Database: 同様の機能は「REDOログ」と呼ばれています。
  • Walrus: 「WAL」は「Write-Ahead Logging」の略ですが、Suiをベースとした分散型ストレージプロトコル「Walrus」でも「WAL」が使われており、文脈によって意味が異なります。 

コメント