La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Driss HAZZAF1 Transaction Ensemble d'opérations de modification de données annulées ou validées en bloc. Une Transaction vérifie les caractéristiques suivantes.

Présentations similaires


Présentation au sujet: "Driss HAZZAF1 Transaction Ensemble d'opérations de modification de données annulées ou validées en bloc. Une Transaction vérifie les caractéristiques suivantes."— Transcription de la présentation:

1 Driss HAZZAF1 Transaction Ensemble d'opérations de modification de données annulées ou validées en bloc. Une Transaction vérifie les caractéristiques suivantes ( ACID ): Atomicité Cohérence Isolation Durabilité

2 Driss HAZZAF2 Définitions Atomicité : Toutes les opérations d'une transaction sont exécutées, ou toutes sont annulées. Une exécution de seulement d'un sous ensemble de ces opérations est interdite. Cohérence: Une transaction transforme la base de données d'un état cohérent à un autre. Isolation : Pour garantir une lecture cohérente aux autres transactions, les résultats d'une transaction ne sont visibles par les autres transactions que lorsque celle ci est validée. Durabilité : Une fois la transaction validée, on ne peut pas annuler une transaction validée, et ses données sont conservées même en cas de panne.

3 Driss HAZZAF3 Concurrence Une exécution concurrente est une séquence dexécution avec entrecroisement des opérations de plusieurs transactions. Comment est représentée une exécution concurrente ? Les transactions sont représentées par des indices, les lectures par des « r », et les écritures par des « w ». Par exemple, pour représenter la lecture de la donnée « x » par la transaction « 1 » : r 1 [x] Exemple dune exécution concurente : (Histoire) H : r 1 [x] r 2 [y] w 1 [x] r 3 [y] r 2 [x] w 3 [y] r 2 [z] c 1 r 3 [z] w 2 [z] c 2 w 3 [z] c 3

4 Driss HAZZAF4 Problèmes de concurrence Perte de mise à jour Données non validées Annulation de Transaction

5 Driss HAZZAF5 Perte de mise à jour Considérons les transactions T1 et T2 qui modifient le coût du projet WEB ( Le coût initial du projet WEB est 100 ) : Lhistoire dexécution est la suivante : T1 lit le coût du projet WEB ( coût = 100 ) T2 lit le coût du projet WEB ( coût = 100 ) T2 met ce coût à + 10 % => ( coût = 110 ) T1 met ce coût à + 50 % => ( coût = 150 ) Validation T1 Validation T2 A la fin le coût du projet WEB est 150, or ce coût doit être 165.

6 Driss HAZZAF6 Données non validées Considérons les deux mêmes transactions T1 et T2 qui modifient le coût du projet WEB ( Le coût initial du projet WEB est 100 ) : Lhistoire dexécution est la suivante : T1 lit le coût du projet WEB ( coût = 100 ) T1 met ce coût à + 50 % => ( coût = 150 ) T2 lit le coût du projet WEB ( coût = 150 ) T2 met ce coût à + 10 % => ( coût = 165 ) T1 Annulée A la fin le coût du projet WEB est 165, or ce coût doit être 110.

7 Driss HAZZAF7 Annulation de Transaction Considérons les transactions T1 et T2. Lhistoire dexécution est la suivante : H = r1[x]w1[x]r2[x]w2[x]c2a1 Lannulation de T1 ( a1 ) impose lannulation de T2, et ceci après que T2 soit validée ( c2 ). Ce qui est contradictoire avec la règle de durabilité.

8 Driss HAZZAF8 Exécution recouvrable Une exécution qui évite lannulation des transactions validées (Respecte la règle de durabilité ) Exemple : w1[x] r2[x] w2[x] c2 a1 Lannulation de T1 ( a1 ) oblige lannulation de T2 après que T2 soit validé ( c2 ). Cette exécution nest pas recouvrable. Par contre lexécution w1[x] a1r2[x] w2[x] c2 est recouvrable.

9 Driss HAZZAF9 Conflit Deux opérations O1 et O2 sont en conflit si elles ne sont pas permutables (lexécution O1, O2 na pas le même effet que O2,O1), et elles appartiennent à deux transactions différentes. Exemple : H : r1[x] r2[y] w1[x] r3[y] r2[x] w3[y] r2[z] c1 r3[z] w2[z] c2 w3[z] c3 Les conflit : sur x : w1[x]-r2[x] sur y : r2[y]-w3[y] sur z : r2[z]-w3[z], r3[z]-w2[z], w2[z]-w3[z]

10 Driss HAZZAF10 Graphe de précédence Les précédences sont créées par les séquences dopérations dune même donnée. Dans un graphe de précédence : Les nœuds sont les transactions. Si la transaction Tm précède Tn, alors il existe un arc de Tm vers Tn Exemple : Soit lexécution : H : r1[x] r2[y] w1[x] r3[y] r2[x] w3[y] r2[z] c1 r3[z] w2[z] c2 w3[z] c3 T1 T2T3

11 Driss HAZZAF11 Sérialisabilité Une exécution en série : Il ny a aucun entrelacement entre les transactions. Les transactions sont exécutées les unes après les autres. Exécutions équivalentes : Deux exécutions sont équivalentes si : Elles ont les mêmes Transactions et les mêmes opérations. Elles font les mêmes modifications dans la base. Elles ont les mêmes impacts sur les transactions. Exécution sérialisable : est une exécution équivalente à une exécution en série. Important : Si le graphe de précédence dune exécution contient des cycles, alors lexécution nest pas sérialisable.

12 Driss HAZZAF12 Exécution stricte Une exécution stricte est une exécution qui évite les annulation en cascade. Exemple : H : r1[x] r2[y] w1[x] r3[y] r2[x] w3[y] r2[z] c1 r3[z] w2[z] c2 w3[z] c3 r2[x] se fait après w1[x] et avant c1, donc H névite pas les annulations en cascade. H nest pas stricte.

13 Driss HAZZAF13 Verrouillage à deux phases Le verrouillage à deux phases est une technique de verrouillage des objets par une transaction, et à relâcher les verrous après avoir obtenu tous ce dont elle a besoin. Une transaction passe par deux phases : Acquérir les verrous Relâcher les verrous Au niveau des SGBD les verrous sont relâchés à la fin de la transaction ( Lors de la validation ou lannulation de la transaction ).

14 Driss HAZZAF14 Verrouillage à deux phases (exemple) H: r1[x] r2[y] r3[x] r1[z] r1[u] w3[x] r1[y] r3[u] w2[y] c2 c1 w3[u] c3 r1[x], r2[y] sexécutent, en prenant les verrous de lecture r3[x] partage le verrou de lecture sur x avec r1[x] et sexécute r1[z], r1[u] sexécutent, en prenant les verrous de lecture w3[x] bloquée par r1[x], donc T3 bloquée r1[y] partage le verrou de lecture sur y avec r2[y] et sexécute r3[u] bloquée, car T3 bloquée w2[y] bloquée par r1[y], donc T2 bloquée c2 bloquée car T2 bloquée c1 sexécute et relâche les verrous de T1 w3[x] sexécuter, r3[u] sexécute. W2[y] sexécuter C2 sexécute et relâche les verrou de T2 W3[u] et c3 sexécutent Le résultat final est donc H : r1[x] r2[y] r3[x] r1[z] r1[u] r1[y] c1 w3[x] r3[u] w2[y] c2 w3[u] c3

15 Driss HAZZAF15 Exercice Considérons lexécution concurrente de trois transactions suivante : H : r1 [x] r2 [y] w1 [y]r3[y]w1 [z]w2 [y]c1w3[z]c3c2 1. Vérifiez si H est sérialisable en identifiant les conflits et en construisant le graphe de sérialisation. 2. Lexécution H est-elle stricte? Justifiez votre réponse. 3. Quelle est lexécution obtenue par verrouillage à deux phases à partir de H? On considère que le relâchement des verrous dune transaction se fait au Commit et quà ce moment on exécute en priorité les opérations bloquées en attente de verrou, dans lordre de leur blocage.

16 Driss HAZZAF16 Solution 1. Les conflits sur x : aucun Les conflits sur y : r2[y]-w1[y], w1[y]-r3[y], w1[y]- w2[y], r3[y]-w2[y]. Les conflits sur z : w1[z]-w3[z]. Le graphe de sérialisation contient les arcs T2 -> T1, T1-> T3, T1 -> T2, T3 - > T2. Il y a des cycles, donc H nest pas sérialisable. 2. Après w1[y], on a r3[y] avant la fin de T1, donc H névite pas les annulations en cascade, donc elle nest pas stricte.

17 Driss HAZZAF17 Solution (suite) 3. lexécution obtenue par verrouillage à deux phases : r1[x], r2[y] sexécutent w1[y] est bloquée en attente de verrou sur y r3[y] sexécute en partageant le verrou de lecture avec r2[y] w1[z] est bloquée, car T1 est bloquée w2[y] est bloquée à cause de r3[y] c1 est bloquée, car T1 est bloquée w3[z] sexécute C3 sexécute et relâche les verrous de T3 w2[y] sexécute c2 sexécute et relâche les verrous de T2 w1[y], w1[z] et c1 sexécutent. Résultat: r1[x] r2[y] r3[y] w3[z] c3 w2[y] c2 w1[y] w1[z] c1


Télécharger ppt "Driss HAZZAF1 Transaction Ensemble d'opérations de modification de données annulées ou validées en bloc. Une Transaction vérifie les caractéristiques suivantes."

Présentations similaires


Annonces Google