Odložená aktualizácia vs okamžitá aktualizácia
Odložená aktualizácia a okamžitá aktualizácia sú dve techniky používané na udržiavanie súborov denníka transakcií systémov správy databáz (DBMS). Protokol transakcií (tiež označovaný ako denník denníka alebo redo log) je fyzický súbor, ktorý obsahuje ID transakcie, časovú pečiatku transakcie, starú hodnotu a nové hodnoty údajov. To umožňuje DBMS sledovať údaje pred a po každej transakcii. Keď sú transakcie potvrdené a databáza sa vráti do konzistentného stavu, protokol môže byť skrátený, aby sa odstránili potvrdené transakcie.
Odložená aktualizácia
Odložená aktualizácia tiež nazývaná NO-UNDO/REDO je technika používaná na obnovenie/podporu zlyhaní transakcií, ku ktorým došlo v dôsledku zlyhania operačného systému, napájania, pamäte alebo stroja. Keď transakcia prebieha, žiadne aktualizácie alebo zmeny vykonané v databáze transakciou sa nevykonajú okamžite. Sú zaznamenané v protokolovom súbore. Zmeny údajov zaznamenané v protokolovom súbore sa použijú v databáze pri odovzdaní. Tento proces sa nazýva „opätovné vykonanie“. Pri vrátení sa všetky zmeny údajov zaznamenaných v protokolovom súbore zahodia; preto sa v databáze nepoužijú žiadne zmeny. Ak transakcia zlyhá a nie je potvrdená z niektorého z vyššie uvedených dôvodov, záznamy v protokolovom súbore sa zahodia a transakcia sa reštartuje. Ak sú zmeny v transakcii potvrdené pred zrútením, potom po reštarte systému sa zmeny zaznamenané v protokolovom súbore použijú v databáze.
Okamžitá aktualizácia
Okamžitá aktualizácia, tiež nazývaná UNDO/REDO, je tiež ďalšou technikou používanou na obnovenie/podporu zlyhaní transakcií, ku ktorým dochádza v dôsledku zlyhania operačného systému, napájania, pamäte alebo stroja. Keď sa transakcia spustí, všetky aktualizácie alebo zmeny vykonané transakciou sa zapíšu priamo do databázy. Pôvodné hodnoty aj nové hodnoty sa tiež zaznamenajú do súboru protokolu pred vykonaním zmien v databáze. Pri potvrdení sa všetky zmeny vykonané v databáze stanú trvalými a záznamy v protokolovom súbore sa zahodia. Pri návrate sa staré hodnoty obnovia do databázy pomocou starých hodnôt uložených v protokolovom súbore. Všetky zmeny vykonané transakciami v databáze sa zahodia a tento proces sa nazýva „Un-doing“. Keď sa systém po zlyhaní reštartuje, všetky zmeny databázy sa pre potvrdené transakcie stanú trvalými. V prípade nepotvrdených transakcií sa pôvodné hodnoty obnovia pomocou hodnôt v súbore denníka.
Aký je rozdiel medzi odloženou aktualizáciou a okamžitou aktualizáciou
Aj keď sú odložená aktualizácia a okamžitá aktualizácia dve metódy obnovy po zlyhaní systému, proces, ktorý každá metóda používa, je odlišný. Pri odlišnej metóde aktualizácie sa všetky zmeny vykonané v údajoch transakciou najskôr zaznamenajú do súboru denníka a pri odovzdaní sa použijú v databáze. Pri metóde okamžitej aktualizácie sa zmeny vykonané transakciou priamo aplikujú do databázy a staré hodnoty a nové hodnoty sa zaznamenajú do súboru protokolu. Tieto záznamy sa používajú na obnovenie starých hodnôt pri návrate. Pri odlišnej metóde aktualizácie sú záznamy v protokolovom súbore pri návrate zrušené a nikdy sa nepoužijú v databáze. Jednou nevýhodou metódy odloženej aktualizácie je dlhší čas potrebný na obnovenie v prípade zlyhania systému. Na druhej strane časté I/O operácie, keď je transakcia aktívna, sú nevýhodou pri metóde okamžitej aktualizácie.