Teradata Databaseでは、Write Ahead Logging (WAL)プロトコルが使用されます。更新を提示するレコードが格納されるログ ファイルへの永久データの書き込みは、このプロトコルに従って行なわれます。ログ ファイルは、トランザクションのコミットなどの重要な時点でディスクに書き込まれます。
異なるトランザクションからの永久データに対する変更は、すべてWALログに書き込まれますが、バッチ処理も可能です。バッチ処理により、I/O書き込み操作の回数が大幅に削減されます。1回のI/O操作で、永久データに対する複数の更新を提示することができます。
WALログは、概念上は表に似ていますが、表よりも簡単な構造をしています。ログ データは一連のWALレコードであり、通常の行構造とは異なり、SQLによってアクセスすることはできません。
WALログには、以下の内容が記録されます。
- 通常の操作時にはキャッシュ内で実行される操作に基づいて、ディスク ブロックを更新して再始動時のファイル システムの一貫性を保証するための、やり直しレコード
- トランザクションのロールバック用に使用される一時ジャーナル(TJ)レコード
WALでは、一時ジャーナル(TJ)表、ユーザー ジャーナル表、および再始動可能スプール表(グローバル一時表)を除く、すべての永久表とすべてのシステム表が保護されます。また、システムの障害発生時には、WALログからTeradata Databaseを再構築することが可能です。
ファイル システムは、シリンダの集合であるDEPOT(デポ)というディスク領域を使用して、適所への段階書き込みを行ないます。DEPOTを使用した適所への段階書き込みにより、古いコピーと新しいコピーのどちらも再始動後に使用可能になることが保証されます。