Transaction - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Transaction

Description:

Atomicit : Toutes les op rations d'une transaction sont ex cut es, ou toutes sont annul es. ... le m me effet que O2,O1), et elles appartiennent deux transactions diff rentes. ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 18
Provided by: dhdh
Category:

less

Transcript and Presenter's Notes

Title: Transaction


1
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
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
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  r1x
  • Exemple dune exécution concurente (Histoire)
  • H r1x r2y w1x r3y r2x w3y r2z c1
    r3z w2z c2 w3z c3

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

5
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 gt ( coût 110 )
  • T1 met ce coût à 50 gt ( 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
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 gt ( coût 150 )
  • T2 lit le coût du projet WEB ( coût 150 )
  • T2 met ce coût à 10 gt ( 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
Annulation de Transaction
  • Considérons les transactions T1 et T2.
  • Lhistoire dexécution est la suivante
  • H r1xw1xr2xw2xc2a1
  • 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
Exécution recouvrable
  • Une exécution qui évite lannulation des
    transactions validées (Respecte la règle de
    durabilité )
  • Exemple
  • w1x r2x w2x 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 w1x a1r2x w2x c2 est
    recouvrable.

9
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 r1x r2y w1x r3y r2x w3y r2z c1
    r3z w2z c2 w3z c3
  • Les conflit
  • sur x w1x-r2x
  • sur y r2y-w3y
  • sur z r2z-w3z, r3z-w2z, w2z-w3z

10
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 r1x r2y w1x r3y
    r2x w3y r2z c1 r3z w2z c2 w3z c3

11
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
Exécution stricte
  • Une exécution stricte est une exécution qui évite
    les annulation en cascade.
  • Exemple
  • H r1x r2y w1x r3y r2x w3y r2z c1
    r3z w2z c2 w3z c3
  • r2x se fait après w1x et avant c1, donc H
    névite pas les annulations en cascade.
  • H nest pas stricte.

13
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
Verrouillage à deux phases (exemple)
  • H r1x r2y r3x r1z r1u w3x r1y
    r3u w2y c2 c1 w3u c3
  • r1x, r2y sexécutent, en prenant les verrous
    de lecture
  • r3x partage le verrou de lecture sur x avec
    r1x et sexécute
  • r1z, r1u sexécutent, en prenant les verrous
    de lecture
  • w3x bloquée par r1x, donc T3 bloquée
  • r1y partage le verrou de lecture sur y avec
    r2y et sexécute
  • r3u bloquée, car T3 bloquée
  • w2y bloquée par r1y, donc T2 bloquée
  • c2 bloquée car T2 bloquée
  • c1 sexécute et relâche les verrous de T1
  • w3x sexécuter,
  • r3u sexécute.
  • W2y sexécuter
  • C2 sexécute et relâche les verrou de T2
  • W3u et c3 sexécutent
  • Le résultat final est donc H r1x r2y r3x
    r1z r1u r1y c1 w3x r3u w2y c2 w3u
    c3

15
Exercice
  • Considérons lexécution concurrente de trois
    transactions suivante 
  • H r1 x r2 y w1 yr3yw1 zw2
    yc1w3zc3c2
  •   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
Solution
  • 1. Les conflits sur x aucun
  • Les conflits sur y r2y-w1y, w1y-r3y,
    w1y-w2y, r3y-w2y.
  • Les conflits sur z w1z-w3z.
  • Le graphe de sérialisation contient les arcs T2
    -gt T1 , T1-gt T3, T1 -gt T2, T3 - gt T2 .
  • Il y a des cycles, donc H nest pas sérialisable.
  • 2. Après w1y, on a r3y avant la fin de T1 ,
    donc H névite pas les annulations en cascade,
    donc elle nest pas stricte.

17
Solution (suite)
  • 3. lexécution obtenue par verrouillage à deux
    phases
  • r1x, r2y sexécutent
  • w1y est bloquée en attente de verrou sur y
  • r3y sexécute en partageant le verrou de
    lecture avec r2y
  • w1z est bloquée, car T1 est bloquée
  • w2y est bloquée à cause de r3y
  • c1 est bloquée, car T1 est bloquée
  • w3z sexécute
  • C3 sexécute et relâche les verrous de T3
  • w2y sexécute
  • c2 sexécute et relâche les verrous de T2
  • w1y, w1z et c1 sexécutent.
  • Résultat r1x r2y r3y w3z c3 w2y c2
    w1y w1z c1
Write a Comment
User Comments (0)
About PowerShow.com