CLFS toplama alanları

Ortak Günlük Dosya Sistemi (CLFS) istemcisi günlük kayıtlarını geçici bellekteki bir sıralama alanına ekler ve CLFS bu kayıtları düzenli aralıklarla kararlı depolama alanına yazar. Yığın düzenleme alanı, her biri birkaç günlük kaydı tutabilen günlük G/Ç tamponlarından oluşan bir koleksiyondur. Günlük G/Ç arabellekleri, kısa süre önce bir akışa yazılan (ancak büyük olasılıkla kararlı depolama alanına boşaltılmayan) kayıtları ve yakın zamanda akıştan okunan kayıtları tutar.

ClfsCreateMarshallingArea'yı çağırarak bir ekleme alanı oluşturursunuz. Bu işlem sırasında, ekleme alanının kullandığı log G/Ç tamponlarının boyutunu ve bu tamponların sayfalı veya sayfa dışı bellek havuzunda olup olmadığını belirtmeniz gerekir. Bir düzenleme alanındaki tüm günlük G/Ç arabellekleri aynı boyuttadır ve CLFS, boyutun temel alınan kararlı depolama ortamındaki sektör boyutunun katı olmasını sağlar. Diğer bir ifadeyle, CLFS istediğiniz boyutu alır ve G/Ç arabelleklerinizi kararlı depolama ortamıyla uyumlu hale getirmek için gereken şekilde yuvarlar.

CLFS, gerekli olduğunda günlük G/Ç arabelleklerini ayırır ve serbest bırakır, ancak bir kerede ayrılabilecek en fazla G/Ç arabellek sayısını ayarlama seçeneğiniz vardır. Ayrıca kendi arabellek ayırma ve serbest bırakma işlevlerinizi sağlama seçeneğiniz de vardır.

Günlük kayıtları yazma işlemi için bir kerede ayrılabilecek maksimum günlük G/Ç arabellek sayısını belirtmek için ClfsCreateMarshallingArea işlevinin cMaxWriteBuffers parametresini ayarlayın. Arabellek sayısını sınırlamak, temizlemelerin kalıcı depolamaya olan sıklığını etkiler; daha az arabellekle, günlük kayıtlarının kalıcı depolama alanına daha sık yazılması gerekir. Temizleme sıklığını denetlemeniz gerekmiyorsa cMaxWriteBuffers değerini INFINITE (Winbase.h içinde tanımlanır) olarak ayarlayın.

Günlük kayıtlarını okumak için bir kerede ayrılabilecek en fazla günlük G/Ç arabellek sayısını belirtmek için ClfsCreateMarshallingArea işlevinin cMaxReadBuffers parametresini ayarlayın. Ayrılan okuma arabelleklerinin sayısını denetlemeniz gerekmiyorsa cMaxReadBuffers değerini INFINITE olarak ayarlayın.

Kendi bellek ayırmanızı yapmak istiyorsanız, ClfsCreateMarshallingArea işlevinin pfnAllocBuffer ve pfnFreeBuffer parametrelerini, kendi ayırma ve serbest bırakma işlevlerinize işaret edecek şekilde ayarlayın. CLFS, günlük G/Ç tamponlarını oluşturması veya serbest bırakması gerektiğinde, gerçek bellek ayırma ve serbest bırakma işlemlerini gerçekleştirmek üzere işlevlerinizi çağırır.

Bazı durumlarda, önceden bir toplanma alanında yer ayırmak isteyebilirsiniz. Örneğin, 10 günlük kaydı kümesi yazmak üzere olduğunuzu biliyor ve kümenin tamamı için hazırlama alanında yeterli alan olduğundan emin olmak isteyebilirsiniz. 10 kayıt için alan ayırmak için, kayıtların boyutlarını tutan 10 öğeli bir dizi oluşturun ve ardından diziyi rgcbReservation parametresindeki ClfsReserveAndAppendLog işlevine geçirin. ClfsReserveAndAppendLog , bir sıralama alanında yer ayıran veya günlük kayıtlarını bir akışa ekleyen veya bunların ikisini de atomik olarak yapan çok amaçlı bir işlevdir. Parametreleri uygun şekilde ayarlayarak ClfsReserveAndAppendLog'u çağırarak akışa herhangi bir kayıt eklemeden gelecekte kullanmak üzere yer ayırabilirsiniz.

Ayrıca bakınız

ClfsCreateMarshallingArea

ClfsReserveAndAppendLog

toplama alanı