Complément : Algorithme de reprise UNDO-REDO
Introduction
L'algorithme suivant permet d'assurer une reprise après panne qui annule et rejoue les transactions adéquates.
1
1. SOIT deux listes REDO et UNDO
2
1a. Initialiser la liste REDO à vide
3
1b. Initialiser la liste UNDO avec toutes les transactions en cours au dernier point de contrôle
4
5
2. FAIRE une recherche en avant dans le journal, à partir du point de contrôle
6
2a. SI une transaction T est commencée ALORS ajouter T à UNDO
7
2b. SI une transaction T est terminée avec succès alors déplacer T de UNDO à REDO
8
9
3. QUAND la fin du journal est atteinte
10
3a. Annuler les transactions de la liste UNDO (reprise en arrière)
11
3b. Rejouer les transactions de la liste REDO (reprise en avant)
12
13
4. TERMINER la reprise et redevenir disponible pour de nouvelles instructions
Exemple :
Transactions de type T1
Non prises en compte par l'algorithme.
Transactions de type T2
Ajoutées à la liste UNDO (étape 1b) puis déplacée vers REDO (étape 2b) puis rejouée (étape 3b).
Transactions de type T3
Ajoutées à la liste UNDO (étape 1b) puis annulée (étape 3a).
Transactions de type T4
Ajoutées à la liste UNDO (étape 2a) puis déplacée vers REDO (étape 2b) puis rejouée (étape 3b).
Transactions de type T5
Ajoutées à la liste UNDO (étape 2a) puis annulée (étape 3a).