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

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

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

Page 1: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Contrôle de la concurrence

Cours de Bases de Données

Inge2-Info, IFIPS, Orasy

2006-07

Tao-Yuan JEN - [email protected]

Page 2: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Problématique

Exemple : virement bancaire

Update compte set total=total -100where compte.id = '0001'

Update compte set total=total +100where compte.id = '0002'

Update compte set total=total -100where compte.id = '0001'

Update compte set total=total +100where compte.id = '0002'

Perdu !

Page 3: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Problématique

Exemple : virement bancaire

Update compte set total=total -100where compte.id = '0001'

Update compte set total=total +100where compte.id = '0002'

Unité entière UnUnité un

Unité entière

Page 4: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

ACIDA : 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

Page 5: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Transactions

Actions:

Lecture (read) : RT(O)

Ecriture (write) : WT(O)

Validations ( commit) : CommitT

Annulation (abort) : AbortT

Exécution concurrente :

partage de ressources sérialisation

Page 6: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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

Page 7: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Anomalies et conflits

Deux action sont conflictuelles si au moins une est l'écriture.

Anomalies connues et leur conflit :

Lecture non validée conflit WRLecture non reproductibles conflit RWPerte d'opération conflit WW

Page 8: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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é

Page 9: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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 eurosT2 : A= A*(1+2%), B= B*(1+2%)

L'exécution rend la base de données incohérente

Page 10: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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)

Page 11: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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;

Page 12: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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;

Page 13: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Sérialisable conflituellement

S est sérialisable conflictuellement si les actions conflictuelles des S sont exécutéesdans 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

Page 14: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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 conflictuellementssi

le graphe de conflits de S est acyclique

Page 15: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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

T1 T2

T3

T1 T2

T3

(a) Sérialisable conflictuellement

(b) Sérialisable mais pas sérialisable conflictuellement

Page 16: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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

Page 17: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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 transactionou dans son annulation.

- 2PL : Aucune demande de verrouillage ne pet succéder à une libération de verrou.

Page 18: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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 conflictuelleavec une action déjà exécutée d’autre 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 :

Page 19: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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

T1 T2

T1 : R(A) W(A) R(B) W(B) commit

T2 : R(A) W(A) R(B) W(B) commit

T1 T2

Sortie :

Entrée :

Page 20: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Lecture non reprodctible et 2PL

T1 : R(A) R(A) commit

T2 : R(A) W(A) commitT1 T2

Entrée :

Sortie :

T1 : R(A) R(A) commit

T2 : R(A) W(A) commitT1 T2

Page 21: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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 transactionou dans son annulation.

- Strict 2PL : Tous les verrous d’une transaction sont libérés uniquement à la fin de la transaction

Page 22: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Annulation possible avec Strict 2PL

Strict 2PL garantit la possibilité d’annulation

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

Page 23: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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) ….

Page 24: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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 attendsinon annule Ti

Wound-wait : Si Ti plus de priorité, alors annule Tj sinon Ti attend

Page 25: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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

Page 26: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Gestion des interblocages (3)

Détection V.S. Prévention

Fréquence de détection

Choix des transaction bloquantes à annuler

Page 27: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

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)

Page 28: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Niveaux d'isolations

Lecture non validée

Lecture validée

Lecture reproductible

Sérialisation

Par défaut : sérialisation et lecture-écriture

Page 29: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Lecture non validée

Page 30: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Lecture validée

Page 31: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Lecture reproductible

Page 32: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Sérialisable

Page 33: Contrôle de la concurrence Cours de Bases de Données Inge2-Info, IFIPS, Orasy 2006-07 Tao-Yuan JEN - tao-yuan.jen@u-cergy.fr.

Performance et niveaux d'isolation