Késleltetett frissítés vs azonnali frissítés
A késleltetett frissítés és az azonnali frissítés az adatbázis-kezelő rendszerek (DBMS) tranzakciós naplófájljainak karbantartására használt két technika. A tranzakciós napló (más néven naplónapló vagy újbóli napló) egy fizikai fájl, amely tárolja a Tranzakcióazonosítót, a tranzakció időbélyegét, valamint az adatok régi és új értékeit. Ez lehetővé teszi a DBMS számára, hogy nyomon kövesse az adatokat minden tranzakció előtt és után. Amikor a tranzakciók véglegesítése megtörtént, és az adatbázis visszaáll konzisztens állapotba, a napló lecsonkolható a véglegesített tranzakciók eltávolítása érdekében.
Késleltetett frissítés
A késleltetett frissítés, más néven NO-UNDO/REDO egy olyan technika, amelyet az operációs rendszer, tápellátás, memória vagy géphibák miatt fellépő tranzakciós hibák helyreállítására/támogatására használnak. Amikor egy tranzakció fut, a tranzakció által az adatbázisban végrehajtott frissítések vagy módosítások nem hajtódnak végre azonnal. Rögzítésre kerülnek a naplófájlban. A naplófájlban rögzített adatváltozások véglegesítéskor az adatbázisba kerülnek. Ezt a folyamatot „újrakészítésnek” nevezik. Visszaállításkor a naplófájlban rögzített adatok minden módosítása elvetődik; így az adatbázisban nem lesznek változtatások. Ha egy tranzakció meghiúsul, és a fent említett okok valamelyike miatt nem kerül végrehajtásra, a naplófájlban lévő rekordok törlődnek, és a tranzakció újraindul. Ha a tranzakció módosításait az összeomlás előtt hajtják végre, akkor a rendszer újraindítása után a naplófájlban rögzített módosítások alkalmazásra kerülnek az adatbázisban.
Azonnali frissítés
Az azonnali frissítés, más néven UNDO/REDO, egy másik technika, amelyet az operációs rendszer, tápellátás, memória vagy géphiba miatt fellépő tranzakciós hibák helyreállítására/támogatására használnak. Amikor egy tranzakció fut, a tranzakció által végrehajtott frissítések vagy módosítások közvetlenül az adatbázisba kerülnek. Az adatbázis módosítása előtt az eredeti és az új értékek is rögzítésre kerülnek a naplófájlban. A véglegesítéskor az adatbázisban végrehajtott összes módosítás véglegessé válik, és a naplófájlban lévő rekordok el lesznek vetve. Visszaállításkor a régi értékek visszaállnak az adatbázisba a naplófájlban tárolt régi értékek felhasználásával. A tranzakciók által az adatbázisban végrehajtott összes módosítást elveti, és ezt a folyamatot „Un-doing”-nak nevezik. Amikor a rendszer összeomlás után újraindul, az összes adatbázis-módosítás véglegessé válik a véglegesített tranzakciók esetében. A nem véglegesített tranzakcióknál az eredeti értékek a naplófájlban található értékek használatával állnak vissza.
Mi a különbség a késleltetett és az azonnali frissítés között
Noha a késleltetett frissítés és az azonnali frissítés két módszer a rendszerhiba utáni helyreállításra, az egyes módszerek által használt folyamatok eltérőek. Különböző frissítési módszerek esetén a tranzakciók során az adatokban végrehajtott bármilyen módosítást először egy naplófájlban rögzítik, és véglegesítéskor alkalmazzák az adatbázisban. Az azonnali frissítés módszerében a tranzakciók által végrehajtott módosítások közvetlenül az adatbázisra kerülnek, és a régi és az új értékek rögzítésre kerülnek a naplófájlban. Ezeket a rekordokat a régi értékek visszaállítására használják visszaállításkor. Eltérő frissítési módszerek esetén a naplófájl rekordjai a visszagörgetéskor el lesznek vetve, és soha nem kerülnek alkalmazásra az adatbázisban. A késleltetett frissítési módszer egyik hátránya a rendszerhiba esetén megnövekedett helyreállítási idő. Másrészt a gyakori I/O műveletek, miközben a tranzakció aktív, hátrányt jelent az azonnali frissítési módszerben.