SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
S´erialisation des transactions
Version 1.2
Vincent Englebert
2007
Contents
1 M´ethodes optimistes 2
1.1 Phase de lecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Phase de validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Phase d’´ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 D´etails de la phase de validation . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Validation backward . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 La validation Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 S´erialisation par estampillage 7
• Ces mat´eriaux p´edagogiques devenus obsol`etes dans notre cursus sont distribu´es
en l’´etat et ne sont plus maintenus.
• Tout emprunt vers d’autres supports respectera les conditions de la licence Cre-
ative Commons Attribution – pas d’utilisation commerciale et partage dans les
mˆemes conditions 4.0 International en r´ef´eren¸cant:
Source: Universit´e de Namur Belgique - Facult´e d’informatique - V. Englebert
• Si jamais, une information ´etait incorrectement r´ef´erenc´ee dans ce document,
les ayants-droits sont pri´es de me contacter afin de corriger le document: vin-
cent.englebert (at) unamur.be
1
1 M´ethodes optimistes
Ces m´ethodes d´ecoupent la r´ealisation d’une transaction en trois phases: lecture, vali-
dation et ´ecriture.
1.1 Phase de lecture
Le lancement d’une transaction commence en phase de lecture. Les op´erations de
lecture et d’´ecriture de donn´ees s’effectuent normalement sans restrictions. Cependant,
elles sont red´efinies comme suit:
On note T la transaction en cours.
Procedure Write’(X,V )
begin
WT := WT X → V ;
end
Function Read’(X)→ V
begin
if WT (X) = undef
then V := read(X)
else V := WT (X);
end
La red´efinition des op´erations ´el´ementaires d’acc`es aux donn´ees permet:
1. D’´eviter de modifier l’´etat effectif des donn´ees. En effet, les ´ecritures sont enreg-
istr´ees dans un journal propre `a chaque transaction (i.e., WT ).
2. La lecture d’une donn´ee retourne soit une valeur qui a fait l’objet d’une conclusion
(commit) d’une pr´ec´edente transaction ou de la derni`ere ´ecriture au sein de cette
mˆeme transaction.
3. Chaque transaction peut avoir des valeurs diff´erentes pour une mˆeme donn´ee.
4. Enfin, le lecteur distrait remarquera que cette phase (contrairement `a son nom),
n’empˆeche pas les tentatives d’´ecritures!
1.2 Phase de validation
La phase de validation commence lorsque la demande de clˆoture de transaction est ´emise
par le client. Une validation aposteriori est alors effectu´ee afin de rep´erer l’existence
d’un conflit avec des transactions qui se seraient clˆotur´ees dans le mˆeme intervalle
de temps. Si tout conflit est ´evit´e, alors on passe `a la phase suivante. La phase de
validation sera d´etaill´ee ci-apr`es.
2
1.3 Phase d’´ecriture
Les op´erations d’´ecritures enregistr´ees dans le journal WT sont alors rendues d´efinitives
et visibles pour les autres transactions en cours et `a venir. La transaction se clˆoture
d`es qu’elle a obtenu l’assurance que toutes les donn´ees ont ´et´e sauvegard´ees en lieu sˆur.
1.4 D´etails de la phase de validation
Chaque transaction re¸coit un num´ero lorsqu’elle rentre dans la phase de validation.
On num´erotera donc les transactions T1, T2, . . . , Tn et on notera Ti ≤ Tj si i ≤ j. `A la
fin de la phase de validation,
• soit la transaction est valid´ee, et son son num´ero est d´efinitif;
• soit la transaction est invalid´ee, et son num´ero est lib´er´e;
• soit la transaction n’a proc´ed´e `a aucune modification (elle n’a fait que des lectures
de donn´ees — WT = ∅), et alors son num´ero est ´egalement lib´er´e.
Lorsqu’un num´ero est lib´er´e, celui-ci devient `a nouveau disponible pour une autre
transaction. Les transactions se voient attribuer un num´ero de transaction croissant
(cfr. exclusion des phases expliqu´ees ci-apr`es).
Propri´et´e Si Ti < Tj, alors la phase de lecture de Ti se termine avant le
d´ebut de la phase de validation de Tj.
Pour qu’une transaction A soit s´erialisable avec une transaction B, il suffit1
que:
1. A ne lise pas des donn´ees modifi´ees par B;
2. B ne lise pas des donn´ees modifi´ees par A;
3. A ne modifie pas des donn´ees modifi´ees par B; et
4. B ne modifie pas des donn´ees modifi´ees par A.
Dans les faits, les phases de validation et d’´ecriture durent tr`es peu de temps lorsqu’on
les compare `a la phase de lecture qui comprend tout le “business” de la transaction.
On peut donc rendre les s´equences [ validation — ´ecriture] de diff´erentes transactions
exclusives entre elles. L’ensemble de ces deux phases forme donc une section critique
atomique et exclusive avec toute autre s´equence. La validation ne doit donc v´erifier
que les deux premi`eres r`egles.
1
Mais ces conditions ne sont pas n´ecessaires, on peut ais´ement imaginer deux transactions X ← 1 et X ← 1
qui modifient la mˆeme donn´ee mais restent dans ce cas bien pr´ecis tout `a fait s´erialisables.
3
L V E
L V E
L V E
L V E
L V ERecouvrement interdit
Remarque 1 Il est possible que l’ordre des ´ecritures ne soit pas respect´e par
les phases d’´ecriture.
Temps Transaction A Transaction B
1 Write’(X,1)
2 Write’(X,2)
3 Validation
4 Write(X,2)
5 Validation
6 Write(X,1)
Remarque 2 Si deux transactions Ti et Tj ont ´et´e clˆotur´ees et que Ti < Tj,
alors on est certain que Ti a ´et´e clˆotur´ee avant Tj grˆace au principe d’exclusion des
phases.
4
1.5 Validation backward
Soit Ti une transaction qui rentre dans sa phase de validation. Une fa¸con de v´erifier
l’absence de conflits (i.e., v´erifier les r`egles 1 et 2), est de s’assurer que les donn´ees lues
par Ti n’ont pas ´et´e modifi´ees par une autre transaction qui aurait conclu sa phase
d’´ecriture durant la phase de lecture de Ti.
Soit P le plus grand num´ero de transaction affect´e `a une transaction clˆotur´ee∗
lorsque la transaction Ti entame sa phase de lecture. Soit Q, le plus grand num´ero de
transaction clˆotur´ee∗
lorsque la transaction Ti entame sa phase de validation. Alors
l’algorithme de validation peut ˆetre d´ecrit comme suit: ∗Ces trans-
actions sont
n´ecessairement
clˆotur´ees.
Parmi les options 1, 2 et 3 de cet algorithme, quelle est celle qui correspond `a la
description pr´ec´edente ?
Function Validation(T)→ Boolean
begin
1) r := ∃i ∈ N : (P + 1 ≤ i ≤ Q) ∧ (RT ∩ dom(WTi
) = ∅);
2) r := ∃i ∈ N : (P + 1 ≤ i ≤ Q) ∧ (RT ∩ dom(WT ) = ∅);
3) r := ∀i ∈ N : (P + 1 ≤ i ≤ Q) ∧ (RT ∩ dom(WTi
) = ∅);
return ¬r;
end
#T :=15
]12
]13
]14
[
]11
[
[
[
[ ]15
Sur le sch´ema pr´ec´edent, P et Q valent respectivement 12 et 14. La transaction
courante se voit attribuer le num´ero 15 au d´ebut de sa phase de validation.
Question Montrez que les transactions ne comportant que des instructions
d’´ecriture ne posent jamais de probl`emes lors de la validation.
La validation backward impose au moniteur de transactions de garder les tentatives
d’´ecritures des transactions qui recouvrent une transaction en cours (cfr. les WTx ). Cet
effort peut ˆetre cons´equent lorsque les transactions durent longtemps.
5
1.6 La validation Forward
Lors de la validation Forward, la transaction en cours de validation (T), compare son
jeu d’´ecritures avec les jeux de lectures des autres transactions actives2
. Comme ces
transactions n’ont pas encore entam´e leur phase de validation, elles n’ont pas re¸cu de
num´ero de transaction. Nous d´esignerons par A1, . . . , An l’ensemble des transactions
qui ont d´emarr´e leur phase de lecture pendant l’ex´ecution de la transaction T et qui
n’ont pas ´et´e clˆotur´ees entretemps. L’algorithme de validation peut ˆetre d´ecrit comme
suit:
Fonction Validation(T)→ Boolean
begin
r := ∀i ∈ [1, . . . , n] : dom(WT ) ∩ RAi
= ∅;
return r;
end
´Etant donn´e qu’il n’y a pas d’exclusion entre les phases de lecture des transactions Ai
et la phase de validation de T, l’algorithme de validation prendra en compte le fait que
les ensembles RAi
peuvent changer au cours du calcul!
Lorsqu’un conflit survient, plusieurs strat´egies peuvent ˆetre envisag´ees. Soit Ak une
transaction qui rentre en conflit avec T.
1. On laisse tomber la validation de T (→ le num´ero de transaction de T redevient
disponible). Cela permettra peut-ˆetre `a Ak de se clˆoturer, et donc la cause du
conflit peut ´eventuellement disparaˆıtre.
Avantage Dans le meilleur des cas, on n’avorte aucune transaction. Cette
solution pr´eserve donc les acquis.
Inconv´enient une autre transaction peut survenir en cours de temps et ren-
trer en conflit avec T. La validation de T serait donc encore suspendue. On peut
imaginer un sc´enario o`u T ne serait jamais clˆotur´ee.
2. On avorte toutes les transactions actives qui posent probl`eme et on clˆoture T.
3. On avorte T.
Dans les strat´egies o`u une transaction est avort´ee, le client est inform´e de l’´echec et
doit donc relancer sa transaction. Mais le client n’a toutefois pas la garantie que sa
transaction aura plus de chances les prochaines fois.
2
Elles sont donc dans la phase de lecture.
6
2 S´erialisation par estampillage
Le principe de cette technique est d’attribuer un num´ero d’ordre au d´ebut de chaque
transaction et de s’assurer lors des op´erations de lecture et ´ecriture que deux transac-
tions Ti et Tj se comportent comme si Tj s’ex´ecutait apr`es Ti si i < j.
Cette technique attribue une num´ero (par exemple le temps) `a chaque transaction
d`es son d´ebut3
. Chaque donn´ee D poss`ede deux ensembles DW et DR reprenant les
transactions qui ont respectivement ´ecrit ou lu D. On note Dc
la derni`ere transaction
qui a ´ecrit D et qui a ´et´e clˆotur´ee (Dc
∈ DW ).
En outre, chaque transaction simulera ses tentatives d’´ecriture dans un cache WT :
Data → Valeurs. Ce cache sera rendu effectif lors de la clˆoture de la transaction.
Lors d’une op´eration de lecture/´ecriture d’une donn´ee partag´ee, un conflit survient
lorsque la transaction T. . .
Action Condition du conflit
1. ´ecrit D ∃i : Ti ∈ DR ∧ Ti > T (•)
2. ´ecrit D ∃i : D ∈ dom(WTi
) ∧ Ti > T
3. lit D ∃i : D ∈ dom(WTi
) ∧ Ti > T
L’op´eration d’´ecriture est d´ecrite comme:
Proc´edure Write’(D,v)
d´ebut
Si T ≥ max(DR) ∧ T > Dc
Alors WT := WT D → v
DW := DW ∪ {T}
Sinon avorter T.
fin
L’op´eration de lecture est d´ecrite comme:
Fonction Read’(D)→ v
d´ebut
Si T > Dc
Alors d´ebut
Soit T′
= max{t † t ∈ DW ∧ t ≤ T};
Si T′
est clˆotur´ee (i.e., T′
= Dc
)
Alors d´ebut
DR := DR ∪ {T}
retourner WT′ (D)
fin
Sinon Attendre que T′
clˆoture ou avorte
fin
Sinon avorter T
fin
3
i.e., le d´ebut de la phase de lecture dans la technique pr´ec´edente.
7
Les diagrammes suivants illustrent respectivement divers sc´enarios pouvant se pro-
duire lors de la lecture et de l’´ecriture d’une donn´ee.
QRZ
"'
' ← 
' ← 
' ← 
' ← 
VL 7 Q
H[LVWH SDV
DORUV 7 GRLW DWWHQGUH OD ILQ GH 7
VLQRQ 7 SHXW SRXUVXLYUH
77
7
7
7
7
VL 7 H[LVWDLW
7 GHYUDLW DYRUWHU
' ← 
7
T5  T2  T4  T3  T1  T6
QRZ
' ← 
'
'
77
7
7
7
7
VL 7 RX 7 H[LVWDLHQW
7 GHYUDLW DYRUWHU
'
'
T2  T3  T1  T4  T5
Cette technique ´evite les deadlocks, mais a la facheuse tendance d’avorter souvent
les transactions.
Question
8
• Illustrer par un ou plusieurs diagrammes les cas repris dans les deux algo-
rithmes.
• Montrer comment cette technique permet de faire de l’interleaving dans la
r´ealisation de deux transactions faisant chacune un transfert de compte en
banque (Ca → Cb et Cc → Cb).
9

Weitere ähnliche Inhalte

Andere mochten auch

Savoir vivre, Savoir aimer
Savoir vivre, Savoir aimerSavoir vivre, Savoir aimer
Savoir vivre, Savoir aimerSaqqarah 31
 
Lire envendeedecembre2010juin2011
Lire envendeedecembre2010juin2011Lire envendeedecembre2010juin2011
Lire envendeedecembre2010juin2011ecrivains-vendee
 
La transformation numérique de l'économie française, rapport par Philippe Lem...
La transformation numérique de l'économie française, rapport par Philippe Lem...La transformation numérique de l'économie française, rapport par Philippe Lem...
La transformation numérique de l'économie française, rapport par Philippe Lem...Vincent DEMULIERE
 
Inscription des Pèlerins - JMJ Rio2013
Inscription des Pèlerins - JMJ Rio2013Inscription des Pèlerins - JMJ Rio2013
Inscription des Pèlerins - JMJ Rio2013jmj_pt
 
La Vírgula Prueba Dummy
La Vírgula Prueba DummyLa Vírgula Prueba Dummy
La Vírgula Prueba DummyLa Adelita
 
Lessons 7 1-7-5 quiz review
Lessons 7 1-7-5 quiz reviewLessons 7 1-7-5 quiz review
Lessons 7 1-7-5 quiz reviewmlabuski
 
Noël 2014 Ecomusée d'Alsace
Noël 2014 Ecomusée d'AlsaceNoël 2014 Ecomusée d'Alsace
Noël 2014 Ecomusée d'AlsaceBâle Région Mag
 
Salon etourisme atelier expériences Brive 2.0
Salon etourisme atelier expériences  Brive 2.0 Salon etourisme atelier expériences  Brive 2.0
Salon etourisme atelier expériences Brive 2.0 Salon e-tourisme #VeM
 
Lesson 7 10 transformations
Lesson 7 10 transformationsLesson 7 10 transformations
Lesson 7 10 transformationsmlabuski
 
Otras herramientas 2.0 para la Gestión del conocimiento
Otras herramientas 2.0 para la Gestión del conocimientoOtras herramientas 2.0 para la Gestión del conocimiento
Otras herramientas 2.0 para la Gestión del conocimientoAlfredo Castañeda
 
Festival les Déboussolades 2014 - Le programme
Festival les Déboussolades 2014 - Le programmeFestival les Déboussolades 2014 - Le programme
Festival les Déboussolades 2014 - Le programmeDépartement du Jura
 
Impacts du web sur notre vie professionnelle-Conférence du 13 octobre 2014
Impacts du web sur notre vie professionnelle-Conférence du 13 octobre 2014Impacts du web sur notre vie professionnelle-Conférence du 13 octobre 2014
Impacts du web sur notre vie professionnelle-Conférence du 13 octobre 2014Edith Page
 
Principales statistiques sur l’éducation en chine pour les éducateurs interna...
Principales statistiques sur l’éducation en chine pour les éducateurs interna...Principales statistiques sur l’éducation en chine pour les éducateurs interna...
Principales statistiques sur l’éducation en chine pour les éducateurs interna...EIC Group China
 

Andere mochten auch (20)

Savoir vivre, Savoir aimer
Savoir vivre, Savoir aimerSavoir vivre, Savoir aimer
Savoir vivre, Savoir aimer
 
Lire envendeedecembre2010juin2011
Lire envendeedecembre2010juin2011Lire envendeedecembre2010juin2011
Lire envendeedecembre2010juin2011
 
Simulación-ETED-Omayra-Pérez
Simulación-ETED-Omayra-PérezSimulación-ETED-Omayra-Pérez
Simulación-ETED-Omayra-Pérez
 
Caso finalizado
Caso finalizadoCaso finalizado
Caso finalizado
 
La transformation numérique de l'économie française, rapport par Philippe Lem...
La transformation numérique de l'économie française, rapport par Philippe Lem...La transformation numérique de l'économie française, rapport par Philippe Lem...
La transformation numérique de l'économie française, rapport par Philippe Lem...
 
Etapas tv
Etapas tvEtapas tv
Etapas tv
 
Inscription des Pèlerins - JMJ Rio2013
Inscription des Pèlerins - JMJ Rio2013Inscription des Pèlerins - JMJ Rio2013
Inscription des Pèlerins - JMJ Rio2013
 
La Vírgula Prueba Dummy
La Vírgula Prueba DummyLa Vírgula Prueba Dummy
La Vírgula Prueba Dummy
 
Power jcp&bta
Power jcp&btaPower jcp&bta
Power jcp&bta
 
Lessons 7 1-7-5 quiz review
Lessons 7 1-7-5 quiz reviewLessons 7 1-7-5 quiz review
Lessons 7 1-7-5 quiz review
 
Noël 2014 Ecomusée d'Alsace
Noël 2014 Ecomusée d'AlsaceNoël 2014 Ecomusée d'Alsace
Noël 2014 Ecomusée d'Alsace
 
Salon etourisme atelier expériences Brive 2.0
Salon etourisme atelier expériences  Brive 2.0 Salon etourisme atelier expériences  Brive 2.0
Salon etourisme atelier expériences Brive 2.0
 
Lesson 7 10 transformations
Lesson 7 10 transformationsLesson 7 10 transformations
Lesson 7 10 transformations
 
Prog commune
Prog communeProg commune
Prog commune
 
Otras herramientas 2.0 para la Gestión del conocimiento
Otras herramientas 2.0 para la Gestión del conocimientoOtras herramientas 2.0 para la Gestión del conocimiento
Otras herramientas 2.0 para la Gestión del conocimiento
 
Bloque mensajes
Bloque mensajesBloque mensajes
Bloque mensajes
 
Festival les Déboussolades 2014 - Le programme
Festival les Déboussolades 2014 - Le programmeFestival les Déboussolades 2014 - Le programme
Festival les Déboussolades 2014 - Le programme
 
Impacts du web sur notre vie professionnelle-Conférence du 13 octobre 2014
Impacts du web sur notre vie professionnelle-Conférence du 13 octobre 2014Impacts du web sur notre vie professionnelle-Conférence du 13 octobre 2014
Impacts du web sur notre vie professionnelle-Conférence du 13 octobre 2014
 
Principales statistiques sur l’éducation en chine pour les éducateurs interna...
Principales statistiques sur l’éducation en chine pour les éducateurs interna...Principales statistiques sur l’éducation en chine pour les éducateurs interna...
Principales statistiques sur l’éducation en chine pour les éducateurs interna...
 
Coi 17 avril
Coi 17 avrilCoi 17 avril
Coi 17 avril
 

Sérialisation des transactions

  • 1. S´erialisation des transactions Version 1.2 Vincent Englebert 2007 Contents 1 M´ethodes optimistes 2 1.1 Phase de lecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Phase de validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Phase d’´ecriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 D´etails de la phase de validation . . . . . . . . . . . . . . . . . . . . . . 3 1.5 Validation backward . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.6 La validation Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 S´erialisation par estampillage 7 • Ces mat´eriaux p´edagogiques devenus obsol`etes dans notre cursus sont distribu´es en l’´etat et ne sont plus maintenus. • Tout emprunt vers d’autres supports respectera les conditions de la licence Cre- ative Commons Attribution – pas d’utilisation commerciale et partage dans les mˆemes conditions 4.0 International en r´ef´eren¸cant: Source: Universit´e de Namur Belgique - Facult´e d’informatique - V. Englebert • Si jamais, une information ´etait incorrectement r´ef´erenc´ee dans ce document, les ayants-droits sont pri´es de me contacter afin de corriger le document: vin- cent.englebert (at) unamur.be 1
  • 2. 1 M´ethodes optimistes Ces m´ethodes d´ecoupent la r´ealisation d’une transaction en trois phases: lecture, vali- dation et ´ecriture. 1.1 Phase de lecture Le lancement d’une transaction commence en phase de lecture. Les op´erations de lecture et d’´ecriture de donn´ees s’effectuent normalement sans restrictions. Cependant, elles sont red´efinies comme suit: On note T la transaction en cours. Procedure Write’(X,V ) begin WT := WT X → V ; end Function Read’(X)→ V begin if WT (X) = undef then V := read(X) else V := WT (X); end La red´efinition des op´erations ´el´ementaires d’acc`es aux donn´ees permet: 1. D’´eviter de modifier l’´etat effectif des donn´ees. En effet, les ´ecritures sont enreg- istr´ees dans un journal propre `a chaque transaction (i.e., WT ). 2. La lecture d’une donn´ee retourne soit une valeur qui a fait l’objet d’une conclusion (commit) d’une pr´ec´edente transaction ou de la derni`ere ´ecriture au sein de cette mˆeme transaction. 3. Chaque transaction peut avoir des valeurs diff´erentes pour une mˆeme donn´ee. 4. Enfin, le lecteur distrait remarquera que cette phase (contrairement `a son nom), n’empˆeche pas les tentatives d’´ecritures! 1.2 Phase de validation La phase de validation commence lorsque la demande de clˆoture de transaction est ´emise par le client. Une validation aposteriori est alors effectu´ee afin de rep´erer l’existence d’un conflit avec des transactions qui se seraient clˆotur´ees dans le mˆeme intervalle de temps. Si tout conflit est ´evit´e, alors on passe `a la phase suivante. La phase de validation sera d´etaill´ee ci-apr`es. 2
  • 3. 1.3 Phase d’´ecriture Les op´erations d’´ecritures enregistr´ees dans le journal WT sont alors rendues d´efinitives et visibles pour les autres transactions en cours et `a venir. La transaction se clˆoture d`es qu’elle a obtenu l’assurance que toutes les donn´ees ont ´et´e sauvegard´ees en lieu sˆur. 1.4 D´etails de la phase de validation Chaque transaction re¸coit un num´ero lorsqu’elle rentre dans la phase de validation. On num´erotera donc les transactions T1, T2, . . . , Tn et on notera Ti ≤ Tj si i ≤ j. `A la fin de la phase de validation, • soit la transaction est valid´ee, et son son num´ero est d´efinitif; • soit la transaction est invalid´ee, et son num´ero est lib´er´e; • soit la transaction n’a proc´ed´e `a aucune modification (elle n’a fait que des lectures de donn´ees — WT = ∅), et alors son num´ero est ´egalement lib´er´e. Lorsqu’un num´ero est lib´er´e, celui-ci devient `a nouveau disponible pour une autre transaction. Les transactions se voient attribuer un num´ero de transaction croissant (cfr. exclusion des phases expliqu´ees ci-apr`es). Propri´et´e Si Ti < Tj, alors la phase de lecture de Ti se termine avant le d´ebut de la phase de validation de Tj. Pour qu’une transaction A soit s´erialisable avec une transaction B, il suffit1 que: 1. A ne lise pas des donn´ees modifi´ees par B; 2. B ne lise pas des donn´ees modifi´ees par A; 3. A ne modifie pas des donn´ees modifi´ees par B; et 4. B ne modifie pas des donn´ees modifi´ees par A. Dans les faits, les phases de validation et d’´ecriture durent tr`es peu de temps lorsqu’on les compare `a la phase de lecture qui comprend tout le “business” de la transaction. On peut donc rendre les s´equences [ validation — ´ecriture] de diff´erentes transactions exclusives entre elles. L’ensemble de ces deux phases forme donc une section critique atomique et exclusive avec toute autre s´equence. La validation ne doit donc v´erifier que les deux premi`eres r`egles. 1 Mais ces conditions ne sont pas n´ecessaires, on peut ais´ement imaginer deux transactions X ← 1 et X ← 1 qui modifient la mˆeme donn´ee mais restent dans ce cas bien pr´ecis tout `a fait s´erialisables. 3
  • 4. L V E L V E L V E L V E L V ERecouvrement interdit Remarque 1 Il est possible que l’ordre des ´ecritures ne soit pas respect´e par les phases d’´ecriture. Temps Transaction A Transaction B 1 Write’(X,1) 2 Write’(X,2) 3 Validation 4 Write(X,2) 5 Validation 6 Write(X,1) Remarque 2 Si deux transactions Ti et Tj ont ´et´e clˆotur´ees et que Ti < Tj, alors on est certain que Ti a ´et´e clˆotur´ee avant Tj grˆace au principe d’exclusion des phases. 4
  • 5. 1.5 Validation backward Soit Ti une transaction qui rentre dans sa phase de validation. Une fa¸con de v´erifier l’absence de conflits (i.e., v´erifier les r`egles 1 et 2), est de s’assurer que les donn´ees lues par Ti n’ont pas ´et´e modifi´ees par une autre transaction qui aurait conclu sa phase d’´ecriture durant la phase de lecture de Ti. Soit P le plus grand num´ero de transaction affect´e `a une transaction clˆotur´ee∗ lorsque la transaction Ti entame sa phase de lecture. Soit Q, le plus grand num´ero de transaction clˆotur´ee∗ lorsque la transaction Ti entame sa phase de validation. Alors l’algorithme de validation peut ˆetre d´ecrit comme suit: ∗Ces trans- actions sont n´ecessairement clˆotur´ees. Parmi les options 1, 2 et 3 de cet algorithme, quelle est celle qui correspond `a la description pr´ec´edente ? Function Validation(T)→ Boolean begin 1) r := ∃i ∈ N : (P + 1 ≤ i ≤ Q) ∧ (RT ∩ dom(WTi ) = ∅); 2) r := ∃i ∈ N : (P + 1 ≤ i ≤ Q) ∧ (RT ∩ dom(WT ) = ∅); 3) r := ∀i ∈ N : (P + 1 ≤ i ≤ Q) ∧ (RT ∩ dom(WTi ) = ∅); return ¬r; end #T :=15 ]12 ]13 ]14 [ ]11 [ [ [ [ ]15 Sur le sch´ema pr´ec´edent, P et Q valent respectivement 12 et 14. La transaction courante se voit attribuer le num´ero 15 au d´ebut de sa phase de validation. Question Montrez que les transactions ne comportant que des instructions d’´ecriture ne posent jamais de probl`emes lors de la validation. La validation backward impose au moniteur de transactions de garder les tentatives d’´ecritures des transactions qui recouvrent une transaction en cours (cfr. les WTx ). Cet effort peut ˆetre cons´equent lorsque les transactions durent longtemps. 5
  • 6. 1.6 La validation Forward Lors de la validation Forward, la transaction en cours de validation (T), compare son jeu d’´ecritures avec les jeux de lectures des autres transactions actives2 . Comme ces transactions n’ont pas encore entam´e leur phase de validation, elles n’ont pas re¸cu de num´ero de transaction. Nous d´esignerons par A1, . . . , An l’ensemble des transactions qui ont d´emarr´e leur phase de lecture pendant l’ex´ecution de la transaction T et qui n’ont pas ´et´e clˆotur´ees entretemps. L’algorithme de validation peut ˆetre d´ecrit comme suit: Fonction Validation(T)→ Boolean begin r := ∀i ∈ [1, . . . , n] : dom(WT ) ∩ RAi = ∅; return r; end ´Etant donn´e qu’il n’y a pas d’exclusion entre les phases de lecture des transactions Ai et la phase de validation de T, l’algorithme de validation prendra en compte le fait que les ensembles RAi peuvent changer au cours du calcul! Lorsqu’un conflit survient, plusieurs strat´egies peuvent ˆetre envisag´ees. Soit Ak une transaction qui rentre en conflit avec T. 1. On laisse tomber la validation de T (→ le num´ero de transaction de T redevient disponible). Cela permettra peut-ˆetre `a Ak de se clˆoturer, et donc la cause du conflit peut ´eventuellement disparaˆıtre. Avantage Dans le meilleur des cas, on n’avorte aucune transaction. Cette solution pr´eserve donc les acquis. Inconv´enient une autre transaction peut survenir en cours de temps et ren- trer en conflit avec T. La validation de T serait donc encore suspendue. On peut imaginer un sc´enario o`u T ne serait jamais clˆotur´ee. 2. On avorte toutes les transactions actives qui posent probl`eme et on clˆoture T. 3. On avorte T. Dans les strat´egies o`u une transaction est avort´ee, le client est inform´e de l’´echec et doit donc relancer sa transaction. Mais le client n’a toutefois pas la garantie que sa transaction aura plus de chances les prochaines fois. 2 Elles sont donc dans la phase de lecture. 6
  • 7. 2 S´erialisation par estampillage Le principe de cette technique est d’attribuer un num´ero d’ordre au d´ebut de chaque transaction et de s’assurer lors des op´erations de lecture et ´ecriture que deux transac- tions Ti et Tj se comportent comme si Tj s’ex´ecutait apr`es Ti si i < j. Cette technique attribue une num´ero (par exemple le temps) `a chaque transaction d`es son d´ebut3 . Chaque donn´ee D poss`ede deux ensembles DW et DR reprenant les transactions qui ont respectivement ´ecrit ou lu D. On note Dc la derni`ere transaction qui a ´ecrit D et qui a ´et´e clˆotur´ee (Dc ∈ DW ). En outre, chaque transaction simulera ses tentatives d’´ecriture dans un cache WT : Data → Valeurs. Ce cache sera rendu effectif lors de la clˆoture de la transaction. Lors d’une op´eration de lecture/´ecriture d’une donn´ee partag´ee, un conflit survient lorsque la transaction T. . . Action Condition du conflit 1. ´ecrit D ∃i : Ti ∈ DR ∧ Ti > T (•) 2. ´ecrit D ∃i : D ∈ dom(WTi ) ∧ Ti > T 3. lit D ∃i : D ∈ dom(WTi ) ∧ Ti > T L’op´eration d’´ecriture est d´ecrite comme: Proc´edure Write’(D,v) d´ebut Si T ≥ max(DR) ∧ T > Dc Alors WT := WT D → v DW := DW ∪ {T} Sinon avorter T. fin L’op´eration de lecture est d´ecrite comme: Fonction Read’(D)→ v d´ebut Si T > Dc Alors d´ebut Soit T′ = max{t † t ∈ DW ∧ t ≤ T}; Si T′ est clˆotur´ee (i.e., T′ = Dc ) Alors d´ebut DR := DR ∪ {T} retourner WT′ (D) fin Sinon Attendre que T′ clˆoture ou avorte fin Sinon avorter T fin 3 i.e., le d´ebut de la phase de lecture dans la technique pr´ec´edente. 7
  • 8. Les diagrammes suivants illustrent respectivement divers sc´enarios pouvant se pro- duire lors de la lecture et de l’´ecriture d’une donn´ee. QRZ "' ' ← ' ← ' ← ' ← VL 7 Q H[LVWH SDV DORUV 7 GRLW DWWHQGUH OD ILQ GH 7 VLQRQ 7 SHXW SRXUVXLYUH 77 7 7 7 7 VL 7 H[LVWDLW 7 GHYUDLW DYRUWHU ' ← 7 T5 T2 T4 T3 T1 T6 QRZ ' ← ' ' 77 7 7 7 7 VL 7 RX 7 H[LVWDLHQW 7 GHYUDLW DYRUWHU ' ' T2 T3 T1 T4 T5 Cette technique ´evite les deadlocks, mais a la facheuse tendance d’avorter souvent les transactions. Question 8
  • 9. • Illustrer par un ou plusieurs diagrammes les cas repris dans les deux algo- rithmes. • Montrer comment cette technique permet de faire de l’interleaving dans la r´ealisation de deux transactions faisant chacune un transfert de compte en banque (Ca → Cb et Cc → Cb). 9