Odložená aktualizace vs okamžitá aktualizace
Odložená aktualizace a okamžitá aktualizace jsou dvě techniky používané k udržování souborů protokolu transakcí systémů správy databází (DBMS). Transakční protokol (také označovaný jako deník deníku nebo redo log) je fyzický soubor, který ukládá ID transakce, časové razítko transakce, starou hodnotu a nové hodnoty dat. To umožňuje DBMS sledovat data před a po každé transakci. Když jsou transakce potvrzeny a databáze je vrácena do konzistentního stavu, může být protokol zkrácen, aby se odstranily potvrzené transakce.
Odložená aktualizace
Odložená aktualizace také nazývaná NO-UNDO/REDO je technika používaná k obnově/podporě selhání transakcí, ke kterým dochází v důsledku selhání operačního systému, napájení, paměti nebo stroje. Když transakce běží, žádné aktualizace nebo změny provedené v databázi transakcí nejsou provedeny okamžitě. Jsou zaznamenány v souboru protokolu. Změny dat zaznamenané v souboru protokolu jsou aplikovány na databázi při odevzdání. Tento proces se nazývá „Re-doing“. Při vrácení zpět jsou všechny změny dat zaznamenané v souboru protokolu zahozeny; proto nebudou v databázi použity žádné změny. Pokud se transakce nezdaří a není potvrzena z některého z výše uvedených důvodů, záznamy v souboru protokolu se zahodí a transakce se restartuje. Pokud jsou změny v transakci potvrzeny před zhroucením, po restartu systému se změny zaznamenané v souboru protokolu použijí na databázi.
Okamžitá aktualizace
Okamžitá aktualizace, také nazývaná UNDO/REDO, je také další technika používaná k obnovení/podporě selhání transakcí, ke kterým dochází v důsledku selhání operačního systému, napájení, paměti nebo stroje. Když transakce běží, všechny aktualizace nebo změny provedené transakcí jsou zapsány přímo do databáze. Původní i nové hodnoty jsou také zaznamenány do souboru protokolu před provedením změn v databázi. Při potvrzení se všechny změny provedené v databázi stanou trvalými a záznamy v souboru protokolu se zahodí. Při vrácení zpět jsou staré hodnoty obnoveny do databáze pomocí starých hodnot uložených v souboru protokolu. Všechny změny provedené transakcemi v databázi jsou zahozeny a tento proces se nazývá „Un-doing“. Když se systém po zhroucení restartuje, všechny změny databáze se pro potvrzené transakce stanou trvalými. U nepotvrzených transakcí se původní hodnoty obnoví pomocí hodnot v souboru protokolu.
Jaký je rozdíl mezi odloženou aktualizací a okamžitou aktualizací
I když jsou odložená aktualizace a okamžitá aktualizace dvě metody obnovy po selhání systému, proces, který každá metoda používá, se liší. V různých metodách aktualizace jsou všechny změny provedené v datech transakcí nejprve zaznamenány do souboru protokolu a aplikovány do databáze při odevzdání. Při metodě okamžité aktualizace jsou změny provedené transakcí přímo aplikovány na databázi a staré hodnoty a nové hodnoty jsou zaznamenány do souboru protokolu. Tyto záznamy se používají k obnovení starých hodnot při vrácení zpět. V různých metodách aktualizace jsou záznamy v souboru protokolu při vrácení zpět zahozeny a nikdy nejsou aplikovány na databázi. Jednou nevýhodou metody odložené aktualizace je delší doba potřebná k obnově v případě selhání systému. Na druhou stranu časté I/O operace, když je transakce aktivní, jsou nevýhodou v metodě okamžité aktualizace.