![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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/1.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/2.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/3.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/5.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/6.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/7.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/8.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/9.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/10.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/11.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/12.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/13.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/14.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/15.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/16.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/17.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/18.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/19.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/20.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/21.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/22.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/23.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/24.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/25.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/26.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/27.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/28.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/29.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/30.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/31.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/32.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062511/551d9d7d497959293b8b5342/html5/thumbnails/33.jpg)
Performance et niveaux d'isolation