Diferența dintre actualizarea amânată și actualizarea imediată

Anonim

Actualizarea amânată și actualizarea imediată

Actualizarea amânată și actualizarea imediată sunt două tehnici utilizate pentru menținerea fișierelor jurnal de tranzacții ale sistemelor de gestionare a bazelor de date SGBD). Jurnalul de tranzacții (numit și jurnalul jurnal sau jurnalul de redoire) este un fișier fizic care stochează ID-ul tranzacției, ștampila de timp a tranzacției, valoarea veche și noile valori ale datelor. Aceasta permite DBMS-ului să urmărească datele înainte și după fiecare tranzacție. Atunci când tranzacțiile sunt angajate și baza de date este returnată într-o stare consecventă, jurnalul poate fi trunchiat pentru a elimina tranzacțiile angajate.

Actualizare amânată

Actualizare amânată, de asemenea, numită NO-UNDO / REDO este o tehnică utilizată pentru a recupera / susține eșecurile de tranzacție care apar din cauza defecțiunilor sistemului de operare, a puterii, a memoriei sau a mașinii. Atunci când o tranzacție se execută, orice actualizări sau modificări efectuate în baza de date prin tranzacție nu se fac imediat. Acestea sunt înregistrate în fișierul jurnal. Modificările de date înregistrate în fișierul jurnal sunt aplicate în baza de date privind comiterea. Acest proces este numit "Re-doing". La revocare, orice modificări ale datelor înregistrate în fișierul jurnal sunt eliminate; prin urmare, nu vor fi aplicate modificări în baza de date. Dacă o tranzacție nu reușește și nu este comisă din cauza vreunuia dintre motivele menționate mai sus, înregistrările din fișierul jurnal sunt aruncate și tranzacția este reluată. Dacă modificările unei tranzacții sunt comise înainte de a se prăbuși, atunci după ce sistemul repornește, modificările înregistrate în fișierul jurnal sunt aplicate în baza de date.

Actualizarea imediată, denumită și UNDO / REDO, este, de asemenea, o altă tehnică utilizată pentru a recupera / susține eșecurile de tranzacție care apar din cauza defecțiunilor sistemului de operare, a puterii, a memoriei sau a mașinii. Când se execută o tranzacție, oricare dintre actualizările sau modificările efectuate de tranzacție sunt scrise direct în baza de date. Atât valorile inițiale, cât și noile valori sunt înregistrate și în fișierul de jurnal înainte de a se efectua modificări în baza de date. La comiterea tuturor modificărilor făcute în baza de date se fac permanent și înregistrările din fișierul jurnal sunt aruncate. La revocare, valorile vechi sunt restaurate în baza de date utilizând valorile vechi stocate în fișierul jurnal. Toate modificările aduse de tranzacții către baza de date sunt eliminate și acest proces este numit "Unduirea". Când sistemul repornește după un accident, toate modificările bazei de date devin permanente pentru tranzacțiile angajate. În cazul tranzacțiilor neangajate, valorile inițiale sunt restabilite utilizând valorile din fișierul jurnal.

Care este diferența dintre actualizarea amânată și actualizarea imediată

Chiar dacă actualizarea amânată și actualizarea imediată sunt două metode de recuperare după o eșecare a sistemului, procesul pe care fiecare metodă îl utilizează este diferit.În metoda de actualizare diferită, orice modificări aduse datelor printr-o tranzacție sunt înregistrate mai întâi într-un fișier jurnal și aplicate la baza de date pe comitet. În metoda de actualizare imediată, modificările efectuate de o tranzacție sunt aplicate direct în baza de date, iar vechile valori și noile valori sunt înregistrate în fișierul jurnal. Aceste înregistrări sunt folosite pentru a restabili valorile vechi la revocare. În metoda de actualizare diferită, înregistrările din fișierul jurnal sunt aruncate înapoi înapoi și nu sunt aplicate în baza de date. Un dezavantaj al metodei de actualizare amânată este timpul crescut pentru recuperare în cazul unei defecțiuni a sistemului. Pe de altă parte, operațiile de I / O frecvente în timp ce tranzacția este activă reprezintă un dezavantaj în metoda actualizării imediate.