6) Construire le graphe de précédence de ces transactions. Quels problèmes d’exécution pourraient survenir ?
Cette exécution est-elle sérialisable ?
On se place dans le cas du verrouillage, sans choisir un algorithme particulier pour résoudre les conflits.
7) Montrer que l’algorithme de verrouillage repère le problème de cette exécution. Quel serait l’algorithme de
résolution de conflit le plus adapté à cette exécution ?
8) On suppose maintenant que l’on connaît à l’avance les 6 transactions à exécuter en parallèle. Comment
optimiser l’algorithme de verrouillage ou de résolution de conflit vis à vis de cette exécution particulière pour
exécuter de façon optimale toutes les transactions ?
On se place maintenant dans le cas de l’estampillage.
8) Est-on sur de rendre cette exécution sérialisable avec le système d’estampillage ? Prouvez que cela est vrai
pour toute exécution non sérialisable. Proposer un algorithme de lecture et un algorithme d’écriture avec
estampillage.
9) L’algorithme d’estampillage est-il mieux adapté à cette exécution que le verrouillage ?
Cas des transactions réparties : protocole de validation atomique
La validation atomique a pour but d'assurer l'atomicité d'une transaction distribuée même en présence de pannes.
Chaque site accédé par une branche de transaction distribuée est appelé participant. Les différents participants se
mettent d'accord sur l'issue d'une transaction en exécutant un protocole de validation atomique. Dans ce
protocole, chacun révèle sa capacité à valider en émettant un vote. Un vote oui (ou prêt) implique que le
participant s'engage à rendre permanentes les mises à jour effectuées par la transaction même s'il tombe en
panne. Un vote non (ou abandon) indique qu'il ne pourra pas valider suite à un problème interne. De plus, un
protocole de validation atomique doit être tolérant aux pannes (pannes de sites ou pannes de communications).
La validation atomique est mise en œuvre dans le protocole de validation à Deux-Phases (2PC). Un site nommé
coordinateur dirige les participants. Le protocole est formé de deux phases:
une phase de vote : le coordinateur envoie un message de demande de vote, appelé aussi message prepare, à
tous les participants. Chaque participant répond au coordinateur en votant pour la validation ou pour
l'abandon. Si un participant vote non, il envoie son vote et abandonne unilatéralement sa branche de
transaction. Par contre, si un participant vote oui, il envoie son vote et se met en attente de la décision finale
du coordinateur. Le participant est alors dans un état appelé "prêt à valider" dans lequel il ne pourra plus ni
valider ni abandonner que s'il reçoit la décision du coordinateur.
une phase de décision : le coordinateur reçoit les votes, puis informe les sites du résultat de sa décision. Si
tous les participants ont voté oui, le coordinateur décide de valider la transaction. Si un ou plusieurs
participants ont voté non, il décide d'abandonner. Les participants qui sont en attente du résultat se
conforment à cette décision et envoient un message d'acquittement.
Pour assurer la tolérance aux pannes, les différentes étapes du protocole 2PC sont enregistrées dans des journaux
maintenus au niveau du coordinateur et des participants. On distingue deux types d'écriture dans un journal. :
Une écriture est dite non forcée si l'enregistrement correspondant est mémorisé dans un journal en mémoire
puis reporté sur un espace de stockage stable
.
Une écriture est dite forcée si elle impose le report immédiat du contenu du journal sur un espace de
stockage stable (n'est jamais perdu en cas de panne).
10) Quelles écritures sont obligatoirement forcées dans ce protocole ? D’après ces considérations, déterminer le
nombre d'entrées-sorties disque bloquantes nécessaire au bon déroulement du protocole engageant P participants.
11) Discuter les inconvénients du 2PC. Comment améliorer le protocole ? Valider les propos par des
comparaisons en terme de nombre de messages échangés, nombre d’écritures forcées, latence (en nombre
d'étapes de communication entre le moment où la validation est soumise au coordinateur et le moment où la
validation devient effective sur chaque participant).
Un espace de stockage est dit stable s'il est non-volatile et fiable.