concurrence

Transcription

concurrence
M1 Miage
U.N.S.
P. Crescenzo - I. Mirbel
Année universitaire 2016/2017
TP 1 (2.5 séances)
Fonctionnement d’un SGBD
La concurrence
I. Application directe du cours magistral
EXERCICE 1 : Une transaction T1 , exécutée par un système de réservation aérienne, se déroule
de la façon suivante :
1. Un client indique sa ville de départ, sa ville d’arrivée et l’heure souhaitée pour le vol qu’il
souhaite réserver. Les informations concernant le(s) vol(s) correpondant(s) sont recherchées
dans la base de données. Elles sont localisées dans les blocs A et B du disque sur lequel est
stockée la base de donnée.
2. Les vols possibles sont présentés au client qui en choisit un dont les données, y compris le
nombre de réservations, se trouvent stockées dans le bloc B. Une réservation pour ce client
sur ce vol est effectuée.
3. Le client choisit alors un siège pour le vol. Les données correspondant à ces informations sont
localisées dans le bloc C.
4. le client donne son numéro de carte de crédit et une facture est ajoutée à la liste des factures
associées au vol et stockées dans le block D.
5. L’adresse électronique du client est insérée dans une autre liste, stockée dans le bloc E, afin
de permettre la confirmation de la réservation.
Exprimez la transaction T1 comme une séquence de lectures et d’écritures.
EXERCICE 2 : Déterminez si les séquences suivantes peuvent produire des anomalies. Les symboles ci et ai indiquent le résultat (commit ou abort) de la transaction.
1.
2.
3.
4.
5.
6.
7.
8.
r1 (x),
r1 (x),
r1 (x),
r1 (x),
r1 (x),
r1 (x),
r1 (x),
r1 (x),
r1 (y), w1 (x), w1 (y), c1 , c2
r2 (z), w1 (x), w2 (z), c1 , c2
w1 (x), r2 (x), w2 (y), a1 , c2
w1 (x), r2 (y), w2 (y), a1 , c2
r2 (x), r2 (y), w2 (y), r1 (z), a1 , c2
r2 (x), w2 (x), w1 (x), c1 , c2
r2 (x), w2 (x), r1 (x), c1 , c2
w1 (x), r2 (y), w2 (x), c1 , c2
EXERCICE 3 : Parmi les séquences suivantes, lesquelles sont vue-sérialisables? Donnez toutes
les sérialisations valides.
1. w0 (x), r2 (x), r1 (x), w2 (x), w2 (z)
2. w0 (x), r1 (x), r2 (x), w2 (x), w2 (z)
3. w0 (x), r1 (x), w1 (x), r2 (x), w1 (z)
4.
5.
6.
7.
w0 (x), r1 (x), w1 (x), w1 (z), r2 (x)
r1 (x), r2 (x), w2 (x), w1 (x)
r1 (x), r1 (y), r2 (z), r2 (y), w2 (y), w2 (z), r1 (z)
r0 (x), r0 (y), w0 (x), r1 (y), r1 (x), w1 (y), r2 (x), r2 (y), r2 (z), w2 (z)
EXERCICE 4 :
Parmi les séquences suivantes, lesquelles sont conflit-sérialisables ? Donnez
toutes les sérialisations valides. Et vue-sérialisables? Donnez toutes les sérialisations valides.
1.
2.
3.
4.
5.
6.
r1 (x),
r1 (x),
r1 (x),
r1 (x),
r1 (x),
r1 (x),
r2 (x), w2 (x), w1 (x)
r1 (y), r2 (z), r2 (y), w2 (y), w2 (z), r1 (z)
w1 (x), r2 (z), r1 (y), w1 (y), r2 (x), w2 (x), w2 (z)
w1 (x), w3 (x), r2 (y), r3 (y), w3 (y), w1 (y), r2 (x)
r2 (x), w2 (x), r3 (x), r4 (z), w1 (x), w3 (y), w3 (x), w1 (y), w5 (x), w1 (z), w5 (y), r5 (z)
r3 (y), w1 (y), w4 (x), w1 (t), w5 (x), r2 (z), r3 (z), w2 (z), w5 (z), r4 (t), r5 (t)
EXERCICE 5 :
Reprendre les séquences de l’exercice 4.
1. Insérez les opérations de prise de verrous exclusifs et partagés et les opérations de restitution
de verrou. Les verrous partagés doivent être placés juste avant chaque opération de lecture qui
n’est pas suivie par une opération d’écriture de la même transaction. Les verrous exclusifs
doivent être placés juste avant toutes les autres opérations d’écriture ou de lecture suivie
d’une opération d’écriture. Les opérations de restitution de verrou sont placées à la fin de
chaque transaction.
2. Indiquez ce qui se passe lorsque chacune des séquences est traitée par un ordonnanceur qui
supporte les verrous exclusifs et partagés.
EXERCICE 6 : Considérons un contrôle de la concurrence basé sur la technique TS pour un
objet x. Initialement, W T M (x) = 5 et RT M (x) = 7. Indiquez les actions de l’ordonnanceur en
réponse aux entrées suivantes.
r(x,8), r(x,17), w(x,16), w(x,18), w(x,23), w(x,29), r(x,20), r(x,30), r(x,25)
EXERCICE 7 :
technique TS.
Reprendre les séquences S1 , S2 , S4 et S6 de l’exercice 4 et les traiter avec la
II. Compléments du cours magistral
EXERCICE 1 : Reprenez l’exemple de ligne fantôme donné dans le cours magistral et montrez
que l’utilisation de la technique 2PL résout le problème de cet exemple.
EXERCICE 2 : La taxonomie des différentes classes de séquence étudiées (VSR, CSR, 2PL et
TS) a été vue en cours magistral. Nous nous proposons ici d’étudier plus en détail cette taxonomie.
1. Montrez par un exemple qu’il existe des séquences qui peuvent être en TS mais pas en 2PL
(l’indice des transactions sera considéré comme leur étiquette). Montrez que la séquence
exemple trouvée appartient à CSR et VSR.
2. Montrez par un exemple qu’il existe des séquences qui sont à la fois en TS et en 2PL. Montrez
que la séquence exemple trouvée appartient à CSR et VSR.