次の方法で共有


共通ログ ファイル システムの概要

共通ログ ファイル システム (CLFS) は、ユーザー モードまたはカーネル モードで実行されているソフトウェア クライアント によって使用される汎用ログ サービスです。 このドキュメントでは、カーネル モード クライアントの CLFS インターフェイスについて説明します。 ユーザー モード インターフェイスの詳細については、Microsoft Windows SDK の共通ログ ファイル システムを参照してください。

CLFS は、回復と分離のセマンティクス (ARIES) を利用するためのアルゴリズムのすべての機能をカプセル化します。 ただし、CLFS デバイス ドライバー インターフェイス (DDI) は ARIES のサポートに限定されません。さまざまなログ記録シナリオに適しています。

高パフォーマンスのトランザクション ログの主なジョブは、ログ クライアントが履歴を正確に繰り返せるようにすることです。 CLFS は、クライアント ログ レコードをメモリ バッファーにマーシャリングし、それらを安定したストレージに強制し、要求に応じてレコードを読み取り戻すことによってこれを行います。 レコードが安定したストレージになり、ストレージ メディアはそのままになると、CLFS はシステム障害の間でレコードを読み取ることができることに注意してください。

CLFS では、専用ログと多重化ログがサポートされます。 専用ログには、ログのすべてのクライアントで使用されるログ レコードの ストリーム が 1 つ含まれます。 多重化されたログ (共通ログとも呼ばれます) には、複数のストリームがあります。 各ストリームには、ログ レコードをマーシャリングするための独自のクライアントと独自のメモリ バッファーがありますが、これらのすべてのバッファーのレコードは 1 つのキューに多重化され、安定したストレージ上の 1 つのログにフラッシュされます。 多重化を使用すると、複数のストリームの I/O 操作を統合できます。

クライアントは、ストリームにレコードを書き込むと、後で参照できるようにログ レコードを識別するログ シーケンス番号 (LSN) を取得します。 特定のストリームに書き込まれるレコードに割り当てられた LSN は、増加するシーケンスを形成します。 つまり、ストリームに書き込まれるレコードに割り当てられた LSN は、その同じストリームに書き込まれた前のレコードに割り当てられた LSN よりも常に大きくなります。

CLFS には、ログ レコードのマーシャリング、フラッシュ、および取得に加えて、いくつかのサービスが用意されています。 次の一覧では、これらの追加サービスの一部について説明します。

  • 関連するログ レコードのセットのスペースは、あらかじめ予約できます。 クライアントは、CLFS がトランザクションを記述するすべてのレコードをログに追加できることを認識して、トランザクションを続行できます。

  • CLFS では、各ログ レコードのヘッダーが保持されます。 クライアントは、ヘッダー内の特定のフィールドを設定して、後で逆の順序で走査できるリンクされたレコードのチェーンを作成できます。

  • CLFS は、ポリシーに従ってログ レコードを安定ストレージにフラッシュしますが、クライアントは一連のログ レコードを安定ストレージに強制することもできます。

  • CLFS では、ログのメタデータと、多重化されたログの各ストリームのメタデータが保持されます。 クライアントはメタデータを表示し、メタデータの特定の部分を設定できます。

  • 各ストリームについて、CLFS は、ベース LSN と、クライアントがストリームのアクティブな部分を示すために使用できる最後の LSN を保持します。

  • 専用ログの場合、CLFS は (クライアントの要求時に) アーカイブ末尾を保持します。この末尾は、アーカイブされたログの一部を追跡するためにクライアントが使用できます。

CLFS の特定の機能 (レコード ヘッダーの前の LSN フィールドや元に戻す次の LSN フィールドなど) は、ARIES を調べて理解するのが最適です。 ARIES の詳細については、次の資料を参照してください。

  • C. モハン、ドン・ハダーレ、ブルース・リンゼイ、ハミド・ピラヘシュ、ピーター・シュヴァルツ、ARIES: 事前書き込みログ記録を使用した微細粒度のロックと部分的なロールバックをサポートするトランザクション回復手法

  • C. モハン、 ARIESを超えて歴史を繰り返す

こちらも参照ください

クライアント

ストリーム