Bases des bases de données
La transaction T1 détient un verrou partagé sur une ligne et la lit. Sur la même ligne, T2 demande un verrou partagé et T3 un verrou exclusif. Quelle affirmation est correcte pour la période qui précède la libération du verrou par T1 ?
- AT2 obtient son verrou immédiatement, mais T3 doit attendre
- BT2 et T3 doivent toutes deux attendre
- CT2 et T3 obtiennent toutes deux leur verrou immédiatement
Afficher la réponse et l'explication
Réponse : A. T2 obtient son verrou immédiatement, mais T3 doit attendre
Un verrou partagé se pose lors de la lecture des données ; d'autres transactions peuvent aussi poser des verrous partagés sur les mêmes données et les lire en même temps, mais elles ne peuvent pas poser de verrou exclusif pour écrire. Un verrou exclusif se pose lors de la mise à jour des données, et tant qu'il est détenu, les autres transactions ne peuvent poser ni verrou partagé ni verrou exclusif. Dans cet exemple, le verrou partagé de T1 et celui de T2 sont compatibles ; T2 obtient donc son verrou immédiatement et peut lire. Le verrou exclusif de T3 est incompatible avec le verrou partagé de T1 ; T3 doit donc attendre que T1 libère son verrou (et, comme T2 détient aussi un verrou partagé, que T2 libère également le sien). Utiliser ainsi des verrous pour éviter les interférences entre transactions exécutées simultanément s'appelle le contrôle de concurrence.
Continuer : 9 autres questions sur Bases des bases de données