Le transazioni di rollback e roll-forward sono equivalenti per la tolleranza d'errore?

4

Ho letto di sistemi che impiegano transazioni per fornire tolleranza agli errori: SQLite, ad esempio, implementa un giornale che consente il ripristino del database in uno stato noto in caso di errore.

La maggior parte dei sistemi di cui sto leggendo scrive lo stato corrente nel journal e lo usa per il rollback quando richiesto. Ho trovato molti meno esempi in cui lo stato next è journalnalled e utilizzato per completare la transazione dopo un errore.

Esistono alcuni buoni esempi di sistemi che impiegano transazioni roll-forward? Ci sono dei motivi per scegliere un progetto di roll-forward rispetto a uno che esegue il rollback?

    
posta Blair Holloway 16.08.2011 - 03:52
fonte

1 risposta

4

La maggior parte degli schemi di database usa entrambi!

RollBack è il processo di annullamento delle modifiche e ritorno a uno stato precedente. Questo di solito si verifica su richiesta quando un programma rileva un errore logico e decide che la transazione non deve aver luogo o quando il DBMS perde il contatto con il programma prima che sia stato richiesto un "COMMIT" esplicito.

RollForward si verifica quando il database si riavvia dopo uno spegnimento anomalo. È un processo che consente di accedere ai file di registro e applicare le modifiche dai file di registro al database sottostante. Nel caso in cui le tabelle sottostanti siano state ripristinate da un backup precedente, ciò può comportare milioni di aggiornamenti e richiedere diverse ore.

    
risposta data 16.08.2011 - 05:52
fonte

Leggi altre domande sui tag