Présentation du système commun de fichiers journaux

Le système CLFS (Common Log File System) est un service de journalisation à usage général qui peut être utilisé par les clients logiciels s’exécutant en mode utilisateur ou en mode noyau. Cette documentation traite de l’interface CLFS pour les clients en mode noyau. Pour plus d’informations sur l’interface en mode utilisateur, consultez Common Log File System dans le Microsoft Windows SDK.

CLFS encapsule toutes les fonctionnalités de l’algorithme ARIES (Recovery and Isolation Exploiting Semantics). Toutefois, l’interface du pilote de périphérique CLFS (DDI) n’est pas limitée à la prise en charge d’ARIES ; il convient parfaitement à divers scénarios de journalisation.

La tâche principale de tout journal transactionnel hautes performances consiste à permettre aux clients de journaux de répéter avec précision l’historique. CLFS effectue cette opération en marshalant les enregistrements de journal client dans des mémoires tampons, en les forçant à un stockage stable et en lisant les enregistrements à la demande. Il est important de noter qu’une fois qu’un enregistrement est parvenu à un stockage stable et que le support de stockage est intact, CLFS est en mesure de lire l’enregistrement entre les défaillances système.

CLFS prend en charge les journaux dédiés et les journaux multiplexés. Un journal dédié a un flux unique d’enregistrements de journal qui est utilisé par tous les clients du journal. Un journal multiplexé (également appelé journal commun) a plusieurs flux. Chaque flux a ses propres clients et ses propres mémoires tampons pour le marshaling des enregistrements de journal, mais les enregistrements de toutes ces mémoires tampons sont multiplexés dans une seule file d’attente et vidés dans un seul journal sur un stockage stable. Le multiplexage permet de consolider les opérations d’E/S de plusieurs flux.

Lorsqu’un client écrit un enregistrement dans un flux, il obtient un numéro de séquence de journal (LSN) qui identifie l’enregistrement de journal pour référence ultérieure. Les LSN affectés aux enregistrements écrits dans un flux particulier forment une séquence croissante. Autrement dit, le LSN attribué à un enregistrement écrit dans un flux est toujours supérieur au LSN attribué à l’enregistrement précédent écrit dans ce même flux.

CLFS fournit plusieurs services en plus du marshaling, du vidage et de la récupération des enregistrements de journal. La liste suivante décrit certains de ces services supplémentaires.

  • L’espace d’un ensemble d’enregistrements de journal associés peut être réservé à l’avance. Cela signifie qu’un client peut poursuivre une transaction en sachant que CLFS sera en mesure d’ajouter au journal tous les enregistrements qui décrivent la transaction.

  • CLFS conserve un en-tête pour chaque enregistrement de journal. Les clients peuvent définir certains champs dans l’en-tête pour créer des chaînes d’enregistrements liés que vous pouvez parcourir ultérieurement dans l’ordre inverse.

  • CLFS vide les enregistrements de journal dans un stockage stable conformément à sa stratégie, mais permet également aux clients de forcer un ensemble d’enregistrements de journaux à un stockage stable.

  • CLFS gère les métadonnées d’un journal ainsi que pour chaque flux d’un journal multiplexé. Les clients peuvent afficher les métadonnées et définir certaines parties des métadonnées.

  • Pour chaque flux, CLFS gère un LSN de base et un dernier LSN qu’un client peut utiliser pour délimiter la partie active du flux.

  • Pour les journaux dédiés, CLFS gère (à la demande du client) une queue d’archive que le client peut utiliser pour effectuer le suivi de la partie du journal qui a été archivée.

Certaines fonctionnalités de CLFS (par exemple, les champs LSN précédents et undo-next LSN d’un en-tête d’enregistrement) peuvent être mieux comprises en étudiant ARIES. Pour plus d’informations sur ARIES, consultez les articles suivants.

  • C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, Peter Schwarz, ARIES: A Transaction Recovery Method Support Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging.

  • C. Mohan, Histoire répétée au-delà du BÉLIER.