Exercices du 13 avril 2005
Exercices IBD 1 / 2
Séance d'Exercices IBD N°4
Fiabilité
Soit un système multi-utilisateurs qui gère des pannes avec un journal d’opérations effectuées par les transactions. Le protocole utilisé est UNDO/REDO. Les opérations d’écriture modifient donc directement la base de données et chaque opération est précédée par l’écriture d’un article dans le journal. La syntaxe est : (start transaction, Nom_Transac)
(commit, Nom_Transac) (rollback, Nom_Transac) (R, Nom_Transac, Nom_objet)
(W, Nom_Transac, Nom_objet, Ancienne_valeur, Nouvelle_valeur) (checkpoint)
(commit, Nom_Transac)
Soit l’exécution simultanée de T1-T4 suivante :
A to les valeurs sont les suivantes A = 30, B = 15, C = 40, D = 20, E= 12, F =35 Le contenu du journal est donc
(start transaction, T1) (R, T1, A)
(R, T1, D)
(W, T1, D, 20, 21) (commit,T1)
(checkpoint)
(start transaction, T2) (R, T2, B)
(W, T2, B, 15, 12) (start transaction, T4) (R, T4, E)
(W, T4, E, 12, 15) (start transaction, T3) (R, T3, A)
(W, T3, A, 30, 35) (R, T4, F)
(W, T4, F, 35, 20) (commit,T4)
(R, T2, D)
(W, T2, D, 21, 25)
****panne****
to checkpoint Panne
T1 R(A) R(D) W(D)
T2 R(B) W(B) R(D) W(D)
T3 R(A) W(A)
T4 R(E) W(E) R(F) W(F)
Begin Commit
Begin
Begin Commit
Begin
to checkpoint Panne
T1 R(A) R(D) W(D)
T2 R(B) W(B) R(D) W(D)
T3 R(A) W(A)
T4 R(E) W(E) R(F) W(F)
Begin Commit
Begin
Begin Commit
Begin
Exercices du 13 avril 2005
Exercices IBD 2 / 2 a) On considère que le checkpoint est « quiescient ».
Décrivez quelles sont les transactions confirmées, défaites, opération du journal refaites.
b) On considère maintenant le journal suivant (modifié de a)) (start transaction, T1)
(R, T1, A) (R, T1, D)
(W, T1, D, 20, 21) (commit,T1)
(start transaction, T2)
(on décide de faire un checkpoint) (R, T2, B)
(W, T2, B, 15, 12) (start transaction, T4) (R, T4, E)
(W, T4, E, 12, 15) (start transaction, T3) (R, T3, A)
(W, T3, A, 30, 35) (R, T4, F)
(W, T4, F, 35, 20) (commit,T4)
(R, T2, D)
(W, T2, D, 21, 25)
****panne****
Après le début de la transaction T2, on décide de faire un checkpoint « non-quiescent ». Décrivez alors le contenu du journal, quelles sont les transactions confirmées, défaites, opération du journal refaites.
c) Si le protocole REDO est appliqué, décrivez le contenu du journal et la procédure de reprise dans ce cas (considérez uniquement un checkpoint « quiescient »).
d) Soit une autre exécution des mêmes transactions. Décrivez les procédures de reprise (UNDO/REDO et REDO) selon que la panne a eu lieu avant ou après le End checkpoint. Ecrire le contenu du journal dans le cas d’un journal REDO.
(start transaction, T1) (R, T1, A)
(R, T1, D)
(W, T1, D, 20,21) (commit,T1)
(start transaction, T4) (R, T4, E)
(W, T4, E, 12, 15) (start checkpoint(T4)) (R, T4, F)
(W, T4, F, 35, 20) (commit,T4)
(start transaction, T2) (R, T2, B)
(W, T2, B, 15, 12)
(start transaction, T3) (R, T3, A)
(W, T3, A, 30, 35) (R, T2, D)
(W, T2, D, 21, 25)
****panne****