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

Présentations similaires


Présentation au sujet: "Contrôle de la concurrence"— 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 = '0001' Update compte set total=total +100 where compte.id = '0002' Update compte set total=total +100 where compte.id = '0002' Perdu !

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

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

5 Transactions Actions: Lecture (read) : RT(O) Ecriture (write) : WT(O)
Validations ( commit) : CommitT Annulation (abort) : AbortT 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ée conflit WR Lecture non reproductibles conflit 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
L'exécution rend la base de données incohérente Exemple : T1 : A -> B 1000 euros T2 : A= A*(1+2%), B= B*(1+2%)

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 T2 : W(A) commit T3 : W(A) commit (a) Sérialisable conflictuellement T1 : R(A) W(A) commit T2 : W(A) commit T3 : W(A) commit (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 T2 : W(A) commit
(a) Sérialisable conflictuellement T3 T1 : R(A) W(A) commit T2 : W(A) commit T3 : W(A) commit T1 T2 (b) Sérialisable mais pas sérialisable conflictuellement T3

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 n’est exécutée que si elle n’est pas conflictuelle avec une action déjà exécutée d’autre transaction active Entrée : W(B) W(C) commit W(A) commit W(D) W(B) commit Sortie : W(B) W(C) commit W(A) commit W(D) W(B) commit

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

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

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 d’une transaction sont libérés uniquement à la fin de la transaction

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

23 2PL et interblocage Entrée : Sortie : T1 : W(A) W(B) W(C) commit
T2 : W(B) W(A) commit 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) T1 T2 T4 T3

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 d’objets 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"

Présentations similaires


Annonces Google