Présentation de l’Common Log File System

Le Common Log File System (CLFS) 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 pour la récupération et la sémantique d’exploitation de l’isolation (ARIES). Toutefois, l’interface DDI (Device Driver Interface) CLFS n’est pas limitée à la prise en charge de ARIES ; Il est bien adapté à un large éventail de scénarios de journalisation.

Le principal travail des journaux transactionnels à hautes performances consiste à autoriser les clients du journal à répéter l’historique avec précision. CLFS effectue cela en marshalant les enregistrements du journal des clients en mémoire tampon, 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 a fait de son stockage stable et que le support de stockage est intact, CLFS peut lire l’enregistrement entre les défaillances du système.

CLFS prend en charge les journaux dédiés et les journaux multiplexés. Un journal dédié contient un seul flux d’enregistrements de journal qui est utilisé par tous les clients du journal. Un journal multiplexé (également appelé journal commun) comporte plusieurs flux. Chaque flux a ses propres clients et ses propres mémoires tampons de mémoire pour le marshaling des enregistrements de journal, mais les enregistrements de toutes ces mémoires tampons sont multiplexés dans une file d’attente unique et vidés en une seule ouverture de session 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 récupère un numéro séquentiel dans le journal qui identifie l’enregistrement du journal pour référence ultérieure. La LSN assignée aux enregistrements écrits dans un flux de données particulier forme une séquence qui croît. Autrement dit, le LSN assigné à un enregistrement écrit dans un flux est toujours supérieur au LSN assigné à 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 quelques-uns 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 gère 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 en fonction de sa stratégie, mais permet également aux clients de forcer un ensemble d’enregistrements de journal dans un stockage stable.

  • CLFS conserve les métadonnées d’un journal, ainsi que 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écourber la partie active du flux.

  • Pour les journaux dédiés, CLFS gère (à la demande du client) une fin d’archivage 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 documents suivants.

  • C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, Peter Schwarz, Aries : une méthode de récupération de transactions prenant en charge Fine-Granularity le verrouillage et les restaurations partielles à l’aide de la journalisation Write-Ahead.

  • C. Mohan, en répétant l’historique au-delà de Aries.