Bu sayfa makine çevirisidir. İngilizce orijinalini okuyun. English

IBSurgeon kütüphanesi

Firebird 2.0 çöp toplayıcı

Motor, her bir UPDATE/DELETE ifadesinin ürettiği kayıt sürümlerini bilir ve en eski anlık görüntü işlemi (OST) buna izin verdiği anda bunları kaldırabilir. Bu, kullanıcı isteğiyle (ör. SELECT COUNT(*) FROM table) bu sürümlerin bulunduğu sayfaların tekrar okunması ihtiyacını ortadan kaldırır ve bu sürümlerin hiç okunmaması durumunu önler (tabii ki sweep her zaman kullanılmayan tüm kayıt sürümlerini kaldırırdı). Ayrıca, gerekli sayfaların tampon önbelleğinde hâlâ bulunma olasılığı yüksektir, bu nedenle ek disk G/Ç ihtiyacı daha azdır.

Kullanılmayan sürümlere sahip sayfa hakkında çöp toplayıcıya bildirim yapılması ile çöp toplayıcının bu sayfayı okuma zamanı arasında yeni bir işlem kaydı güncelleyebilir ve bu yeni işlem numarası OST’nin üzerindeyse veya hâlâ aktifse çöp toplayıcı bu kaydı temizleyemez. Bu durumda motor, çöp toplayıcıya bu sayfa numarasıyla tekrar bildirim yapar ve çöp toplayıcı çöpü daha sonraki bir zamanda temizler (eski çöp toplayıcı, kullanıcı sayfayı tekrar okuyana kadar bu sayfayı “unutur”).

Artık hem işbirlikçi hem de arka plan çöp toplama mümkündür. Bunu yönetmek için yeni bir yapılandırma parametresi olan “GCPolicy” tanıtıldı. Şu değerlere ayarlanabilir:

  • a) cooperative - çöp toplama yalnızca işbirlikçi modda gerçekleştirilir, IB6 öncesindeki gibi. Her kullanıcı isteği, kullanılmayan kayıt sürümlerini kaldırmaktan sorumludur. Motor, IB6 öncesinde bu şekilde çalışır. Bu, Classic Server modu için tek seçenektir. Motor, UPDATE ve DELETE ifadelerinin sonucu olarak üretilen sürümleri izlemez.

  • b) background - çöp toplama yalnızca arka plan iş parçacığı tarafından gerçekleştirilir, IB6 ve sonrasındaki gibi. Hiçbir kullanıcı isteği kullanılmayan kayıt sürümlerini kaldırmaz. Bunun yerine kullanıcı isteği, kullanılmayan kayıt sürümünün tespit edildiği sayfa numarasıyla özel çöp toplayıcı iş parçacığını bilgilendirir. Ayrıca motor, UPDATE\DELETE ifadesinin geri sürümler oluşturduğu sayfa numaralarını hatırlar.

  • c) combined - hem arka plan hem de işbirlikçi çöp toplama gerçekleştirilir.

SuperServer için varsayılan “combined"dır. ClassicServer bu parametreyi yok sayar ve her zaman “cooperative” modda çalışır.