Introduzione alla Common Log File System

Il Common Log File System (CLFS) è un servizio di registrazione per utilizzo generico che può essere usato dai client software in esecuzione in modalità utente o kernel. Questa documentazione illustra l'interfaccia CLFS per i client in modalità kernel. Per informazioni sull'interfaccia in modalità utente, vedere Common Log File System nella Microsoft Windows SDK.

CLFS incapsula tutte le funzionalità dell'algoritmo per la semantica ARIES (Algorithm for Recovery and Isolation Exploiting Semantics). Tuttavia, l'interfaccia del driver di dispositivo CLFS (DDI) non è limitata al supporto di ARIES. è particolarmente adatto a un'ampia gamma di scenari di registrazione.

Il processo principale di qualsiasi log transazionale a prestazioni elevate è consentire ai client di log di ripetere in modo accurato la cronologia. A tale scopo, CLFS esegue il marshalling dei record di log client in buffer di memoria, forzandoli all'archiviazione stabile e leggendo nuovamente i record su richiesta. È importante notare che dopo che un record lo rende stabile e il supporto di archiviazione è intatto, CLFS sarà in grado di leggere il record tra gli errori di sistema.

CLFS supporta log dedicati e log multiplexed. Un log dedicato ha un singolo flusso di record di log usato da tutti i client del log. Un log multiplexed (detto anche log comune) ha diversi flussi. Ogni flusso ha i propri client e i propri buffer di memoria per il marshalling dei record di log, ma i record di tutti questi buffer vengono multiplixati in una singola coda e scaricati in un singolo log in un archivio stabile. Il multiplexing consente il consolidamento delle operazioni di I/O di diversi flussi.

Quando un client scrive un record in un flusso, recupera un numero di sequenza di log (LSN) che identifica il record di log per riferimento futuro. Le LSN assegnate ai record scritti in un flusso specifico formano una sequenza crescente. Ciò significa che il numero LSN assegnato a un record scritto in un flusso è sempre maggiore del numero LSN assegnato al record precedente scritto nello stesso flusso.

CLFS offre diversi servizi, oltre al marshalling, allo scaricamento e al recupero dei record di log. L'elenco seguente descrive alcuni di questi servizi aggiuntivi.

  • Lo spazio per un set di record di log correlati può essere riservato in anticipo. Ciò significa che un client può procedere con una transazione sapendo che CLFS sarà in grado di aggiungere al log tutti i record che descrivono la transazione.

  • CLFS gestisce un'intestazione per ogni record di log. I client possono impostare determinati campi nell'intestazione per creare catene di record collegati che possono essere attraversati in un secondo momento in ordine inverso.

  • CLFS scarica i record di log nell'archiviazione stabile in base ai criteri, ma consente anche ai client di forzare un set di record di log in un archivio stabile.

  • CLFS gestisce i metadati per un log e anche per ogni flusso di un log multiplexed. I client possono visualizzare i metadati e impostare determinate parti dei metadati.

  • Per ogni flusso, CLFS gestisce un LSN di base e un ultimo LSN che un client può usare per delineare la parte attiva del flusso.

  • Per i log dedicati, CLFS mantiene (su richiesta del client) una coda di archivio che il client può usare per tenere traccia della parte del log che è stata archiviata.

Alcune funzionalità di CLFS (ad esempio, i campi LSN precedenti e LSN undo-next di un'intestazione di record) possono essere meglio comprese con lo studio di ARIES. Per altre informazioni su ARIES, vedere i documenti seguenti.

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

  • C. Mohan, ripetizione della cronologia oltre ARIES.