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

Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN -

Présentations similaires


Présentation au sujet: "Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN -"— Transcription de la présentation:

1 Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy Tao-Yuan JEN -

2 Problématique Exemple : virement bancaire Update compte set total=total -100 where compte.id = '0001' Update compte set total=total +100 where compte.id = '0002' Update compte set total=total -100 where compte.id = '0001' Update compte set total=total +100 where compte.id = '0002' Perdu !

3 Problématique Exemple : virement bancaire Update compte set total=total -100 where compte.id = '0001' Update compte set total=total +100 where compte.id = '0002' Unité entière Un Unitéun Unité entière

4 ACID A : Atomicité tous exécuté ou non exécuté C : Cohérence transformation séquentielle dun état cohérent à un autre I : Isolation pas dinfluence dautres D : Durabilité si valider, alors persister

5 Transactions Actions: Lecture (read) : R T (O) Ecriture (write) : W T (O) Validations ( commit) : Commit T Annulation (abort) : Abort T Exécution concurrente : partage de ressources sérialisation

6 Sérialisation L'effet d'une exécution concurrente d'un ensemble de transactions est égale à une exécution séquentielle de cet ensemble de transaction sous un certain ordre Exemple T1 : R(A)W(A)W(C)commit T2 : R(B)W(B)commit

7 Anomalies et conflits Deux action sont conflictuelles si au moins une est l'écriture. Anomalies connues et leur conflit : Lecture non validéeconflit WR Lecture non reproductiblesconflit RW Perte d'opération conflit WW

8 Lecture non validée (1) T1 : R(A)W(A)abort T2 : R(A)W(A) La transaction T2 a lu une valeur de A qui n'est jamais existé

9 Lecture non validée (2) T1 : R(A)W(A) R(B)W(B) commit T2 : R(A)W(A) R(B)W(B) commit Exemple : T1 : A -> B 1000 euros T2 : A= A*(1+2%), B= B*(1+2%) L'exécution rend la base de données incohérente

10 Lecture non reproductible T1 : R(A)R(A).... T2 : R(A)W(A)commit La transaction T1 peut se trouver lire deux valeurs distinctes de A sans avoir modifié A (pas de I dans ACID)

11 Perte d'opération T1 : R(A)W(A)commit T2 : R(A)W(A)commit La transaction T1 supprimer l'effet de T2. Exemple : A= 5; T1 : A = A+1; T2 : A = A -1;

12 Annulation impossible T1 : R(A)W(A) abort T2 : R(A)W(A) commit Sérialisation garantit les transformations entre des états cohérents si les transactions sont validées. Sinon, il faut éliminer tous effets produits par la transaction annulée. Exemple : A= 5; T1 : A = A+1; T2 : A = A+1;

13 Sérialisable conflituellement S est sérialisable conflictuellement si les actions conflictuelles des S sont exécutées dans le même ordre que les actions conflictuelles dans une exécution en série. T1 : R(A)commit T3 : W(A) commit T2 : W(A) commit T1 : R(A)W(A)commit T3 : W(A) commit T2 : W(A) commit (a) Sérialisable conflictuellement (b) Sérialisable mais pas sérialisable conflictuellement

14 Graphe des conflits (1) - un noeud pour chaque transaction - un arc de Ti à Tj s'il existe une action a de Ti qui précède une action b de Tj telles que a et b sont conflictuelles. Une exécution concurrente S est sérialisable conflictuellement ssi le graphe de conflits de S est acyclique

15 Graphe des conflits (2) T1 : R(A)commit T3 : W(A) commit T2 : W(A) commit T1 : R(A)W(A)commit T3 : W(A) commit T2 : W(A) commit T1T2 T3 T1T2 T3 (a) Sérialisable conflictuellement (b) Sérialisable mais pas sérialisable conflictuellement

16 Verrouillages Verrou partageable (en lecture) : LR(A) - Un verrou en lecture sur A doit être obtenu par T avant une lecture de A par T Verrou exclusif (en écriture) : LW(A) - Un verrou en écriture sur A doit être obtenu par T avant une écriture de A par T

17 Verrouillage en 2 phases è - LW(O) précède W(O) LR(O) ou LW(O) précèdent R(O) - Tous les verrou doivent être libérés avant la fin de la transaction ou dans son annulation. - 2PL : Aucune demande de verrouillage ne pet succéder à une libération de verrou.

18 Sérialisation et 2PL 2PL garantit le graphe des conflits est acyclique Protocole : une action nest exécutée que si elle nest pas conflictuelle avec une action déjà exécutée dautre transaction active W(B) W(C) commit W(A) commit W(D) W(B) commit Entrée : W(B) W(C) commit W(A) commit W(D) W(B) commit Sortie :

19 Lecture non validée et 2PL T1 : R(A) W(A)R(B) W(B) commit T2 : R(A) W(A)R(B) W(B) commit T1T2 T1 : R(A) W(A)R(B) W(B) commit T2 : R(A) W(A)R(B) W(B) commit T1T2 Sortie : Entrée :

20 Lecture non reprodctible et 2PL T1 : R(A)R(A) commit T2 : R(A)W(A)commit T1T2 Entrée : Sortie : T1 : R(A)R(A)commit T2 : R(A)W(A)commit T1T2

21 Verrouillage en 2 phases strict - LW(O) précède W(O) LR(O) ou LW(O) précèdent R(O) - Tous les verrou doivent être libérés avant la fin de la transaction ou dans son annulation. - Strict 2PL : Tous les verrous dune transaction sont libérés uniquement à la fin de la transaction

22 Annulation possible avec Strict 2PL Strict 2PL garantit la possibilité dannulation T1 : R(A)W(A) abort T2 : R(A)W(A) commit Entrée : Sortie : T1 : R(A)W(A)abort T2 : R(A)W(A) commit

23 2PL et interblocage T1 : W(A)W(B)W(C) commit T2 : W(B)W(A) commit Entrée : Sortie : T1 : LW(A)W(A)LW(B) T2 : LW(B)W(B) LW(A) ….

24 Gestion des interblocages (1) Détection : Graphe des attentes Prévention : Ti demande un verrou conflictuel avec Tj Wait-Die : Si Ti plus de priorité, alors Ti attend sinon annule Ti Wound-wait : Si Ti plus de priorité, alors annule Tj sinon Ti attend

25 Gestion des interblocages (2) Graphe des attentes : Si interblocages, alors cyclique T1 : LR(A), R(A), LR(B) T2 : LW(B), W(B) LW(C) T3 : LR(C), R(C) LW(A) T4 : LW(B) T1T2 T4T3

26 Gestion des interblocages (3) Détection V.S. Prévention Fréquence de détection Choix des transaction bloquantes à annuler

27 Problème des fantômes Ajouter ou supprimer une objet Donc, blocage un ensemble dobjets T1 : LireMax(A) SupprimerMax(B) T2 : LireMax(B)AjouterMax(A)

28 Niveaux d'isolations Lecture non validée Lecture validée Lecture reproductible Sérialisation Par défaut : sérialisation et lecture-écriture

29 Lecture non validée

30 Lecture validée

31 Lecture reproductible

32 Sérialisable

33 Performance et niveaux d'isolation


Télécharger ppt "Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN -"

Présentations similaires


Annonces Google