Ce este matura, de fapt, și de ce este rulat în modul automat, începe să încetinească pentru un loc de muncă? Pentru cei care sunt noi la server, se pare ca „frână“ periodice, care apare în mod neașteptat să dureze ceva timp (până la câteva ore), și la fel de brusc dispar indiferent de curentul de sarcină (numărul de conexiuni și solicită ca acestea sunt efectuate ).
De fapt, diferența dintre numărul de tranzacții pot apărea în condiții foarte diferite, astfel încât o matura automată regulă și pornește în mod neașteptat. Pentru a scapa de astfel de neașteptate se recomandă instalarea de auto-matura 0 (gfix db.gdb -housekeeping 0) și executați manual periodic matura (gfix db.gdb -sweep), atunci când cel mai mic număr de conexiuni active, sau chiar și în modul „exclusiv“ .
De colectare a gunoiului este de două tipuri:- Clasicul arhitecturi (până InterBase 6.0, în Yaffil și Firebird) și SuperClassic (Firebird 2.5, 3.0) - versiune gunoi eliminat de flux (fir), care a venit peste atunci când lectură versiune.
- Superserver (în InterBase 6.0 și mai mare, Firebird 2.5, 3.0) - atunci când detectează versiuni de gunoi de pe pagina (pentru citirea și actualizarea) acest lucru este semnalat de către colectorul de gunoi de debit (fir). Colectorul de gunoi colectează periodic gunoi pe paginile marcate.
De asemenea, pentru a preveni colectarea gunoiului de fundal este actualizarea constantă și frecventă a acelorași pagini de date variabile - de îndată ce colectorul de gunoi ajunge la acesta, paginile se schimbă din nou, iar colectorul de gunoi trebuie să aștepte.
Și, bineînțeles, atunci când a doua strategie, de colectare a gunoiului poate avea loc pe termen nelimitat, chiar și după dezactivarea conexiunilor client, ceea ce face nesigur pentru a reporni serverul în acest moment.
Notă. Sub „repornirea serverului“ se referă la full-time sistem de operare repornire cu servicii de închidere forțată. În mod similar, includ aici apăsând butonul de resetare, opriți și așa mai departe. N. Acest lucru în sine poate duce la corupție de baze de date, în cazul în care în acest moment de lucru cu ea intens. Serviciul de oprire obișnuită sau aplicarea Firebird sau Interbase funcționează diferit, și colectarea gunoiului de orice fel (de fond, cooperativă sau matura) este încheiată în mod corect.
În Firebird 2.0 și mai mare pot fi controlate strategii de colectare a gunoiului. Pentru această configurație (firebird.conf) un GCPolicy parametru, care are 3 optiuni:- fundal - colector de gunoi ruleaza ca un fundal, colectarea de fir separat de gunoi.
- cooperativă - colector de gunoi se execută într-un mod cooperativ, colectând coșul de gunoi imediat la citirea versiunilor „junk“
- combinat - colectorul de gunoi se execută într-un mod cooperativ, dar în cazul în care deșeurile nu pot fi colectate, unele dintre paginile „gunoi“, a semnalat colectorul de gunoi de fundal.
Din aceasta, este clar de ce matura duce la sistem semnificativ „frână“, fiind lansat in baza de date de orice dimensiune semnificativă. De exemplu, baza de date de 2 GB pe tehnica medie matura de funcționare manual (gfix -sweep db.gdb) se desfășoară timp de 2,5 minute, modul single-utilizator (aceasta este baza, în cazul în care nu există nici o versiune de înregistrare, la toate. Dar, de colectare a gunoiului, desigur, duce la modificări pagini care urmează să fie scrise pe disc). Mai mult decât atât, din moment ce citesc toate paginile de date și cache-ul bazei de date de index este deplasat, de aceea, atunci când matura multiplayer încetinește performanța tuturor anchetelor.
Astfel, dacă avem în baza de date există o tranzacție anulat pe rollback (din nou, pentru care serverul este în imposibilitatea de a anula modificările de pe savepoints. Diferite versiuni ale serverului este o altă valoare, cum ar fi nu mai puțin de 60 de mii schimbat intrări), acest lucru înseamnă că fiecare tranzacție ulterioară va verifica versiunea cu privire la starea tranzacției pe lângă cele mai vechi. Și cu cât intervalul, pagina mai multe pagini de tranzacție de inventar (stocare starea tranzacției) va fi citit în cache-ul, și mai multe dintre aceste pagini vor fi stocate într-o „memorie locală“ un instantaneu al tranzacției.
Prin urmare, pur și simplu prin creșterea numărului de tranzacții de performanță se va degrada.
Acesta este de a reduce periodic distanța până la cel mai vechi a fost introdus în continuare, iar matura automat.