Mi a söprés interbase és Firebird
Mi a söprés valójában, és miért automatikus módban fut, akkor lelassul a munkát? Azok számára, akik újak a szerverre, úgy néz ki, mint a rendszeres „fék”, hogy a váratlanul úgy tűnik, hogy bizonyos ideig (legfeljebb egy-két óra), majd hirtelen eltűnik, függetlenül az aktuális terhelés (kapcsolatok száma, és kéri, hogy azokat végre ).
Valójában a különbség a számok a tranzakciók mellett előfordulhat nagyon különböző körülmények között, hogy a szabály az automatikus söpörni, és elkezd váratlanul. Ahhoz, hogy megszabaduljon az ilyen váratlan ajánlatos telepíteni az automatikus söprés 0 (gfix db.gdb -housekeeping 0) és manuálisan futtatni rendszeresen söpörni (gfix db.gdb -sweep), amikor a legkisebb a kapcsolatok száma az aktív, vagy akár a „kizárólagos” módban .
Szemétgyűjtő két típusa van:- A klasszikus architektúrák (amíg InterBase 6.0, a zöldharkály és Firebird) és SuperClassic (Firebird 2.5, 3.0) - változat szemetet eltávolítjuk a patak (menet), amely rábukkantam olvasásakor változata.
- A SuperServer (az InterBase 6.0 és újabb, Firebird 2.5, 3.0) - ha azt észleli változatai szemetet az oldalon (az olvasás és frissítése) ezt jelzi az áramlás (thread) szemétgyűjtő. A szemétgyűjtő rendszeresen gyűjt szemetet a kijelölt oldalakat.
Is, hogy megakadályozzák háttér szemétdíj állandó és gyakori frissítése ugyanazon változó adatokat tartalmazó lapokról - amint a szemétgyűjtő kap, akkor az oldalak ismét változott, és a szemétgyűjtő kell várni.
És persze, ha a második stratégia szemétgyűjtő kerülhet sor a végtelenségig, sőt letiltása után az ügyfél-csatlakozást, így nem biztonságos újraindítani a szervert ezen a ponton.
Megjegyzés. Az „a szerver újraindítására” kifejezés a teljes idejű operációs rendszer újraindítása a kényszerű leállítása szolgáltatásokat. Hasonlóképpen ide tartoznak a reset gomb, kikapcsolás és így tovább. N. Ez önmagában vezethet adatbázis korrupció, ha ebben a pillanatban dolgozik vele intenzíven. Szokásos stop szolgáltatás vagy a Firebird vagy InterBase alkalmazás eltérő módon működik, és a szemétgyűjtő bármilyen (háttér, szövetkezet vagy söprés) van lezárva.
A Firebird 2.0 és magasabb lehet szabályozni szemétgyűjtő stratégiákat. Erre a konfiguráció (firebird.conf) egy paramétert GCPolicy, amely 3 lehetőségek:- háttér - a szemétgyűjtő fut, mint a háttér, gyűjtése szemetet külön téma.
- kooperatív - szemétgyűjtő fut egy kooperatív mód, gyűjtése a szemetet azonnal olvasása közben „szemét” változat
- Kombinált - a szemétgyűjtő fut egy kooperatív mód, de ha a hulladékot nem lehet gyűjteni, néhány „szemetet” oldalak jelezte a háttérben szemétgyűjtő.
Ebből világos, hogy miért a sweep vezet jelentős „fék” rendszer, indítanak az adatbázis bármely jelentős méretű. Például az adatbázis 2 GB átlagosan technikával kézzel fut söprés (gfix -sweep db.gdb) fut 2,5 percig, egyfelhasználós módban (ez az alapja, ha nincs rekord verziók egyáltalán. De szemétgyűjtő természetesen vezet módosítások oldalak írva a lemezre). Továbbá, mivel olvasni az összes adat lapok és az index adatbázis cache elmozdul, ezért amikor a multiplayer söprés lassítja a teljesítményt az összes vizsgálatot.
Így, ha már az adatbázisban van egy tranzakció érvényteleníteni rollback (ismét, amelynek a kiszolgáló nem tudja helyrehozni a változások mentési pontok. Különböző változatai a szerver egy másik értéket, például nem kevesebb, mint 60 ezer megváltozott bejegyzések), ez azt jelenti, hogy minden további tranzakció verziójának ellenőrzése az állam a tranzakció mellett régebbi. És minél tovább az intervallum, annál több oldalt Tranzakciós Inventory oldal (tárolási tranzakció állapot) akkor olvashatók a cache, és a több ilyen oldalak lesznek tárolva a „helyi memória” pillanatkép a tranzakciót.
Ennek megfelelően, egyszerűen azáltal, hogy növeli a tranzakciók száma a teljesítménye romlik.
Meg időnként csökken a távolság akár régebbi Következő vezették be, és az automatikus sweep.