document
Post on 24-Feb-2016
26 Views
Preview:
DESCRIPTION
TRANSCRIPT
Préambule
NFP 107Vertigo 1
Systèmes de gestion de bases de données
NFP 107Introduction à la concurrence d’accès
Troisième fragment
Philippe Rigauxphilippe.rigaux@cnam.fr
http://idf.pleiad.net/index.php
Préambule
NFP 107Vertigo
Les niveaux d’isolation en détail•Le niveau READ UNCOMMITTED▫On peut lire des données en cours de modification
par d’autres transactions▫Principal inconvénient: on a une vision d’un état
incohérent (car transitoire) de la base▫Principal avantage: aucun blocage
•Démonstration….
2
Préambule
NFP 107Vertigo
Les niveaux d’isolation en détail (2)•Le niveau READ COMMITTED▫Une requête ne peut lire que des données déjà
validées.▫Deux requêtes consécutives peuvent donner des
résultats différents▫Principal inconvénient: isolation faible, on voit, au
cours d’une même transaction, différents états de la base.
▫Principal avantage: blocage assez faible, évite les principaux problèmes
•Démonstration….3
Préambule
NFP 107Vertigo
Les niveaux d’isolation en détail (3)•Le niveau REPEATABLE READ▫Les requêtes d’une transaction T ne lisent que les
données validées au début de T ▫Deux lectures consécutives (dans une même
transaction) donnent toujours le même résultat. ▫Principal avantage: on voit un état cohérent de la
base.▫Principal inconvénient: assez coûteux; n’évite pas
les mises à jour perdues
•Démonstration….
4
Préambule
NFP 107Vertigo
Le mode sérialisable•Garantie d’une isolation complète▫Les lectures sont répétables▫La cohérence est garantie▫Indispensable pour les procédures
transactionnelles• Inconvénient majeur▫Des blocages importants▫Parfois rejet d’une transaction en cas de conflit
•Démonstration….
5
Préambule
NFP 107Vertigo
La clause FOR UPDATE• Idée: le problème vient du fait qu’on lit une
donnée pour la modifier ensuite.▫Le système ne peut pas le deviner!▫Il est obligé de tracer toutes les lectures (coût
élevé)▫Il pose des verrous faibles -> mène à un rejet
quand les choses tournent mal•FOR UPDATE▫Le programmeur déclare qu’une lecture va être
suivie d’une mise à jour▫Le système pose un verrou fort pour celles-là, pas
de verrou pour les autres6
Préambule
NFP 107Vertigo
Conclusion•Savoir repérer les transactions dans une
application.▫Dans ce cas, appliquer le mode sérialisable▫La clause FOR UPDATE est en théorie meilleure,
mais repose sur le facteur humain: probablement à éviter.
•Savoir qu’en mode sérialisable on risque des rejets.
•Comprendre les risques dans les autres modes.
7
top related