Aggiornamento differito vs aggiornamento immediato
L'aggiornamento differito e l'aggiornamento immediato sono due tecniche utilizzate per mantenere i file di registro delle transazioni di Database Management Systems (DBMS). Il log delle transazioni (noto anche come log del journal o redo log) è un file fisico che memorizza l'ID della transazione, il timestamp della transazione, il vecchio valore ei nuovi valori dei dati. Ciò consente al DBMS di tenere traccia dei dati prima e dopo ogni transazione. Quando viene eseguito il commit delle transazioni e il database viene restituito a uno stato coerente, il registro potrebbe essere troncato per rimuovere le transazioni sottoposte a commit.
Aggiornamento differito
L'aggiornamento differito chiamato anche NO-UNDO / REDO è una tecnica utilizzata per ripristinare / supportare gli errori di transazione che si verificano a causa di errori del sistema operativo, alimentazione, memoria o macchina. Quando viene eseguita una transazione, eventuali aggiornamenti o modifiche apportati al database dalla transazione non vengono eseguiti immediatamente. Vengono registrati nel file di registro. Le modifiche ai dati registrate nel file di registro vengono applicate al database al momento del commit. Questo processo è chiamato "Re-doing". In caso di rollback, le modifiche ai dati registrati nel file di registro vengono eliminate; quindi nessuna modifica verrà applicata al database. Se una transazione ha esito negativo e non viene eseguito il commit per uno dei motivi sopra menzionati, i record nel file di registro vengono eliminati e la transazione viene riavviata. Se le modifiche in una transazione vengono salvate prima del crash, quindi dopo il riavvio del sistema,le modifiche registrate nel file di registro vengono applicate al database.
Aggiornamento immediato
L'aggiornamento immediato chiamato anche UNDO / REDO, è anche un'altra tecnica utilizzata per recuperare / supportare gli errori di transazione che si verificano a causa di errori del sistema operativo, alimentazione, memoria o macchina. Quando viene eseguita una transazione, tutti gli aggiornamenti o le modifiche apportate dalla transazione vengono scritti direttamente nel database. Sia i valori originali che i nuovi valori vengono registrati anche nel file di registro prima che vengano apportate modifiche al database. Al momento del commit, tutte le modifiche apportate al database vengono rese permanenti ei record nel file di registro vengono eliminati. In caso di rollback i vecchi valori vengono ripristinati nel database utilizzando i vecchi valori memorizzati nel file di registro. Tutte le modifiche apportate dalle transazioni al database vengono eliminate e questo processo viene chiamato "Un-doing". Quando il sistema si riavvia dopo un arresto anomalo, tutte le modifiche al database vengono rese permanenti per le transazioni salvate. Per le transazioni non salvate, i valori originali vengono ripristinati utilizzando i valori nel file di registro.
Qual è la differenza tra aggiornamento differito e aggiornamento immediato
Anche se l'aggiornamento differito e l'aggiornamento immediato sono due metodi per il ripristino dopo un errore di sistema, il processo utilizzato da ciascun metodo è diverso. In un metodo di aggiornamento diverso, qualsiasi modifica apportata ai dati da una transazione viene prima registrata in un file di registro e applicata al database al momento del commit. Nel metodo di aggiornamento immediato, le modifiche apportate da una transazione vengono applicate direttamente al database e i vecchi valori e i nuovi valori vengono registrati nel file di registro. Questi record vengono utilizzati per ripristinare i vecchi valori durante il rollback. In un metodo di aggiornamento diverso, i record nel file di registro vengono eliminati al rollback e non vengono mai applicati al database. Uno svantaggio del metodo di aggiornamento differito è l'aumento del tempo necessario per il ripristino in caso di guasto del sistema. D'altra parte, frequenti operazioni di I / O mentre la transazione è attiva, è uno svantaggio nel metodo di aggiornamento immediato.