Condividi tramite


Introduzione al file system di log comune

Common Log File System (CLFS) è un servizio di registrazione per utilizzo generico 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 in Microsoft Windows SDK.

CLFS incapsula tutte le funzionalità dell'algoritmo per il recupero e l'isolamento sfruttando la semantica (ARIES). Tuttavia, l'interfaccia DDI (Device Driver Interface) CLFS non è limitata al supporto di ARIES; è particolarmente adatto a vari scenari di registrazione.

Il processo principale di qualsiasi log transazionale ad alte prestazioni consiste nel consentire ai client di log di ripetere accuratamente la cronologia. CLFS esegue questa operazione eseguendo il marshalling dei record di log client nei buffer di memoria, forzandoli a una risorsa di archiviazione stabile e leggendo nuovamente i record su richiesta. È importante notare che, una volta che un record viene scritto su un supporto di archiviazione stabile e il dispositivo di archiviazione è intatto, CLFS sarà in grado di leggere il record anche in caso di guasti del sistema.

CLFS supporta log dedicati e log multiplexati. Un log dedicato ha un singolo flusso di record di log usato da tutti i client del log. Un log multiplex (detto 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 i buffer vengono multiplexati in una singola coda e scaricati in un singolo log in una risorsa di archiviazione stabile. Il 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. Gli 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 al marshalling, al flushing e al recupero dei record di log. Nell'elenco seguente vengono descritti alcuni di questi servizi aggiuntivi.

  • Lo spazio per un set di record di log correlati può essere riservato in anticipo. Un client può procedere con una transazione sapendo che CLFS è in grado di accodare al log tutti i record che descrivono la transazione.

  • CLFS mantiene un'intestazione per ogni record di log. I client possono impostare determinati campi nell'intestazione per creare catene di record collegati che in seguito è possibile attraversare in ordine inverso.

  • CLFS scarica i record di log in una risorsa di archiviazione stabile in base ai criteri, ma consente anche ai client di forzare un set di record di log a una risorsa di 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 mantiene 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 archiviata.

Alcune funzionalità di CLFS (ad esempio, i campi LSN precedenti e LSN non successivi di un'intestazione di record) possono essere comprese 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 il blocco a grana fine e i rollback parziali usando la registrazione anticipata.

  • C. Mohan, Ripetere la storia oltre ARIES.

Vedere anche

Clienti

stream