Aggiornamento differito rispetto all'aggiornamento immediato
Aggiornamento differito e Aggiornamento immediato sono due tecniche utilizzate per gestire i file di registro delle transazioni di Database Management Systems (DBMS). Il registro delle transazioni (noto anche come registro del diario o registro di ripristino) è un file fisico che memorizza l'ID transazione, il timestamp della transazione, il valore precedente e i nuovi valori dei dati. Ciò consente al DBMS di tenere traccia dei dati prima e dopo ogni transazione. Quando le transazioni vengono eseguite e il database viene restituito a uno stato coerente, il registro potrebbe essere troncato per rimuovere le transazioni impegnate.
Aggiornamento differito
L'aggiornamento rinviato, chiamato anche NO-UNDO / REDO, è una tecnica utilizzata per ripristinare / supportare i fallimenti delle transazioni che si verificano a causa di errori del sistema operativo, di alimentazione, di memoria o della macchina. Quando viene eseguita una transazione, gli aggiornamenti o le modifiche apportate al database dalla transazione non vengono eseguiti immediatamente. Sono registrati nel file di registro. Le modifiche ai dati registrate nel file di registro vengono applicate al database sul commit. Questo processo è chiamato "rifare". Al momento del rollback, le eventuali modifiche ai dati registrati nel file di registro vengono eliminate; quindi nessuna modifica sarà applicata al database. Se una transazione fallisce e non viene commessa a causa di uno dei motivi sopra menzionati, i record nel file di registro vengono scartati e la transazione viene riavviata. Se le modifiche in una transazione vengono confermate prima del blocco, 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, è un'altra tecnica utilizzata per ripristinare / supportare i fallimenti delle transazioni che si verificano a causa di errori del sistema operativo, di alimentazione, di memoria o della macchina. Quando viene eseguita una transazione, qualsiasi aggiornamento o modifica apportato dalla transazione viene scritto direttamente nel database. Sia i valori originali che i nuovi valori vengono registrati nel file di registro prima che vengano apportate modifiche al database. On commit tutte le modifiche apportate al database vengono rese permanenti e i record nel file di registro vengono eliminati. Durante il 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 scartate e questo processo è chiamato "Non-fare". Quando il sistema si riavvia dopo un arresto anomalo, tutte le modifiche al database vengono rese permanenti per le transazioni impegnate. Per le transazioni senza commit, i valori originali vengono ripristinati utilizzando i valori nel file di registro.
Qual è la differenza tra Aggiornamento differito e Aggiornamento immediato
Anche se Aggiornamento differito e Aggiornamento immediato sono due metodi per il ripristino dopo un errore di sistema, il processo utilizzato da ciascun metodo è diverso. Nel metodo di aggiornamento diverso, tutte le modifiche apportate ai dati da una transazione vengono prima registrate in un file di registro e applicate al database sul commit. Nel metodo di aggiornamento immediato, le modifiche apportate da una transazione vengono applicate direttamente al database e i vecchi valori e nuovi valori vengono registrati nel file di registro. Questi record vengono utilizzati per ripristinare i vecchi valori sul rollback. In 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 posticipato è il tempo maggiore impiegato per il ripristino in caso di un errore del sistema. D'altra parte, le frequenti operazioni di I / O mentre la transazione è attiva, rappresentano uno svantaggio nel metodo di aggiornamento immediato.