Dela via


Introduktion till det gemensamma loggfilsystemet

Common Log File System (CLFS) är en loggningstjänst för generell användning som används av programvaruklienter som körs i användarläge eller kernelläge. I den här dokumentationen beskrivs CLFS-gränssnittet för kernellägesklienter. Information om användarlägesgränssnittet finns i Common Log File System i Microsoft Windows SDK.

CLFS omfattar all funktionalitet av Algorithm for Recovery and Isolation Exploiting Semantics (ARIES). CLFS-enhetsdrivrutinsgränssnittet (DDI) är dock inte begränsat till stöd för ARIES; det passar bra för olika loggningsscenarier.

Det primära jobbet för alla högpresterande transaktionsloggar är att tillåta loggklienter att upprepa historiken korrekt. CLFS gör detta genom att samla klientloggposter i minnesbuffertar, tvinga dem till stabil lagring och läsa poster igen på begäran. Det är viktigt att observera att när en post har lagrats stabilt och lagringsmediet är intakt kommer CLFS kunna läsa posten trots systemfel.

CLFS stöder dedikerade loggar och multiplexerade loggar. En dedikerad logg har en enda dataström med loggposter som används av alla loggens klienter. En multiplexad logg (kallas även för en vanlig logg) har flera strömmar. Varje dataström har sina egna klienter och egna minnesbuffertar för att samla loggposter, men posterna från alla dessa buffertar multiplexeras till en enda kö och töms till en enda logg på stabil lagring. Multiplexering gör att I/O-åtgärder för flera strömmar kan konsolideras.

När en klient skriver en post till en dataström hämtar den tillbaka ett loggsekvensnummer (LSN) som identifierar loggposten för framtida referens. De LSN-numren som tilldelas de poster som skrivs till en specifik ström bildar en ökande sekvens. D.v.s. LSN som tilldelats en post som skrivs till en dataström är alltid större än det LSN som tilldelats den tidigare posten som skrivits till samma dataström.

CLFS tillhandahåller flera tjänster utöver marshalling, tömning och hämtning av loggposter. I följande lista beskrivs några av dessa ytterligare tjänster.

  • Utrymme för en uppsättning relaterade loggposter kan reserveras i förväg. En klient kan fortsätta med en transaktion med vetskapen om att CLFS kan lägga till alla poster som beskriver transaktionen i loggen.

  • CLFS underhåller en rubrik för varje loggpost. Klienter kan ange vissa fält i rubriken för att skapa kedjor med länkade poster som du senare kan bläddra i omvänd ordning.

  • CLFS tömer loggposter till stabil lagring enligt principen, men tillåter även klienter att tvinga en uppsättning loggposter till stabil lagring.

  • CLFS underhåller metadata för en logg och även för varje dataström i en multiplexad logg. Klienter kan visa metadata och ange vissa delar av metadata.

  • För varje dataström upprätthåller CLFS ett bas-LSN och ett sista LSN som en klient kan använda för att avgränsa den aktiva delen av dataströmmen.

  • För dedikerade loggar underhåller CLFS (på klientens begäran) en arkivsvans som klienten kan använda för att hålla reda på den del av loggen som arkiveras.

Vissa funktioner i CLFS (till exempel de tidigare LSN och nästa ångra-LSN-fälten i en postrubrik) kan bäst förstås genom att studera ARIES. Mer information om ARIES finns i följande artiklar.

  • C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, Peter Schwarz, ARIES: En metod för transaktionsåterhämtning som stödjer Fine-Granularity låsning och partiell återgång med Write-Ahead loggning.

  • C. Mohan, att upprepa historien bortom ARIES.

Se även

Klienter

strömma