Sdílet prostřednictvím


Oblasti sřazování CLFS

Klient CLFS (Common Log File System) připojí záznamy protokolu do zařazovací oblasti v nestálé paměti a CLFS tyto záznamy pravidelně zapisuje do stabilního úložiště. Oblast zařazování je soubor vyrovnávacích pamětí pro vstup/výstup protokolu, přičemž každá může obsahovat několik záznamů. Protokolové I/O vyrovnávací paměti uchovávají záznamy, které byly nedávno zapsány do datového proudu (ale pravděpodobně nebyly zapsány do stabilního úložiště) a záznamy, které byly nedávno načteny z datového proudu.

Oblast zařazování vytvoříte voláním ClfsCreateMarshallingArea, ve které okamžiku musíte zadat velikost vstupně-výstupních vyrovnávacích pamětí protokolu, které oblast zařazování používá a zda jsou tyto vyrovnávací paměti ve stránkovaném nebo nestráňovém fondu. Všechny vyrovnávací paměti pro vstupně-výstupní operace v oblasti zpracování protokolu mají stejnou velikost a CLFS zaručuje, že velikost je násobkem velikosti sektoru na podkladovém stabilním úložném médiu. To znamená, že CLFS vezme požadovanou velikost a zaokrouhlí ji podle potřeby tak, aby vaše vstupně-výstupní vyrovnávací paměti byly kompatibilní se stabilním úložným médium.

CLFS podle potřeby přiděluje a uvolní vyrovnávací paměti pro vstupně-výstupní operace protokolu, ale máte možnost nastavit maximální počet vstupně-výstupních vyrovnávacích pamětí, které je možné přidělit najednou. Máte také možnost poskytnout vlastní funkce pro přidělení a uvolnění vyrovnávací paměti.

Chcete-li zadat maximální počet vyrovnávacích pamětí vstupně-výstupního protokolu, které lze v jednom okamžiku přidělit pro zápis záznamů protokolu, nastavte parametr cMaxWriteBuffers funkce ClfsCreateMarshallingArea. Omezení počtu vyrovnávacích pamětí ovlivňuje frekvenci vyprázdnění do stabilního úložiště; s menším počtem vyrovnávacích pamětí musí být záznamy protokolů zapsány do stabilního úložiště častěji. Pokud nepotřebujete řídit frekvenci vyprazdování, nastavte cMaxWriteBuffers na INFINITE (definované v Winbase.h).

Pokud chcete určit maximální počet vstupně-výstupních vyrovnávacích pamětí protokolu, které lze najednou přidělit pro čtení záznamů protokolu, nastavte parametr cMaxReadBuffers funkce ClfsCreateMarshallingArea. Pokud nepotřebujete řídit počet přidělených vyrovnávacích pamětí pro čtení, nastavte cMaxReadBuffers na INFINITE.

Pokud chcete provést vlastní přidělení paměti pro vstupně-výstupní vyrovnávací paměti protokolu, nastavte parametry pfnAllocBuffer a pfnFreeBuffer funkce ClfsCreateMarshallingArea tak, aby odkazovaly na vlastní funkce přidělení a dealokace. Poté CLFS volá vaše funkce, aby prováděly skutečné přidělení paměti a její uvolnění, kdykoli je potřeba vytvořit nebo uvolnit vstupně-výstupní vyrovnávací paměti protokolu logu.

V některých případech můžete chtít předem rezervovat místo v třídicí oblasti. Můžete například vědět, že se chystáte napsat sadu 10 logovacích záznamů a chcete mít jistotu, že je v překládací oblasti dostatek místa pro celou sadu. Pokud chcete rezervovat místo pro 10 záznamů, vytvořte pole s 10 elementy, které obsahuje velikosti záznamů, a pak předejte pole funkci ClfsReserveAndAppendLog v parametru rgcbReservation . ClfsReserveAndAppendLog je víceúčelová funkce, která si vyhrazuje prostor v oblasti zpracování nebo přidává záznamy protokolu do datového proudu, nebo provádí obě tyto věci atomicky. Když nastavíte parametry odpovídajícím způsobem, můžete volat ClfsReserveAndAppendLog a rezervovat místo pro budoucí použití bez skutečného připojení záznamů ke streamu.

Viz také

ClfsCreateMarshallingArea

ClfsReserveAndAppendLog

shromažďovací oblast