Introduzione al file system di log comune

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 in modalità 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 nel Microsoft Windows SDK.

CLFS incapsula tutte le funzionalità dell'algoritmo per il ripristino e l'isolamento sfruttando la semantica (ARIES). Tuttavia, l'interfaccia del driver di dispositivo CLFS (DDI) non è limitata al supporto di ARIES; è adatto a un'ampia gamma di scenari di registrazione.

Il processo primario di qualsiasi log transazionale ad alte prestazioni consiste nel consentire ai client di log di ripetere con precisione la cronologia. CLFS esegue questa operazione eseguendo il marshalling dei record di log client nei buffer di memoria, forzandoli all'archiviazione stabile e leggendo i record di nuovo su richiesta. È importante notare che dopo che un record lo esegue per l'archiviazione stabile e il supporto di archiviazione è intatto, CLFS sarà in grado di leggere il record tra errori di sistema.

CLFS supporta log dedicati e log multipli. Un log dedicato include un singolo flusso di record di log usato da tutti i client del log. Un log multiplexed (chiamato anche log comune) include 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 multipli in una singola coda e scaricati in un singolo log di archiviazione stabile. Multiplexing consente di consolidare le operazioni di I/O di diversi flussi.

Quando un client scrive un record in un flusso, viene restituito un numero di sequenza di log (LSN) che identifica il record di log per riferimento futuro. I nomi LSN assegnati ai record scritti in un determinato flusso formano una sequenza crescente. Ovvero, l'LSN assegnato a un record scritto in un flusso è sempre maggiore dell'LSN assegnato al record precedente scritto nello stesso flusso.

CLFS offre diversi servizi oltre a marshalling, scaricamento e recupero di 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 è possibile attraversare successivamente 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 all'archiviazione 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 gestisce (alla richiesta del client) una coda di archiviazione che il client può usare per tenere traccia della parte del log archiviato.

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

  • C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, Peter Schwarz, ARIES: un metodo di recupero delle transazioni che supporta Fine-Granularity blocchi e rollback parziali usando Write-Ahead registrazione.

  • C. Mohan, ripeti la storia oltre aRIES.