Professional Documents
Culture Documents
Motivation et objectifs
! Excution de transactions rparties
" Les transactions sont un outil de base pour la tolrance aux fautes
" Transaction = suite dactions A = (A1 ; A2 ; ; An) possdant les
proprits ACID
# Atomicit, Cohrence, Isolation, Durabilit (persistence)
" Dans une application rpartie, les actions peuvent sexcuter sur
des sites diffrents, do ncessit dune coordination
Validation atomique
! Validation
" La validation (opration commit) est une opration cl de
lexcution dune transaction (elle rend les modifications
dfinitives)
" Nous allons examiner comment cette opration est ralise dans
un systme rparti
" Intrt
# pratique (ralisation de transactions rparties)
# thorique (rsultats dimpossibilit ; relations avec autres
protocoles)
Sacha Krakowiak
Universit Joseph Fourier
Projet Sardes (INRIA et IMAG-LSR)
http://sardes.inrialpes.fr/people/krakowia
2003-2004, S. Krakowiak
Plan
! Introduction la validation
! Solutions historiques
A (1500)
B (1500)
C (2 000)
2003-2004, S. Krakowiak
A ! B : messagen1
B ! A : messagen
2003-2004, S. Krakowiak
Spcifications de la validation
! Motivations
" Pour terminer une transaction, il faut dcider de son issue!: validation
(commit) ou annulation (abort)
" La validation rend les modifications dfinitives!; lannulation ramne les
processus leur tat avant transaction (proprit datomicit)
Intgrit : Tout processus dcide au plus une fois (une dcision est
dfinitive)
Accord uniforme : Tous les processus (corrects ou non) qui dcident
prennent la mme dcision
! Hypothses
" La communication est fiable (messages dlivrs sans altration)!et
synchrone (une borne est connue sur le temps de transmission des
messages, ainsi que sur les vitesses relatives des processus)
N.B. il suffit de faire cette hypothse sur une dure couvrant celle de la transaction
" Les processus peuvent subir des pannes franches. Un processus en panne
peut tre rpar et rintgrer la transaction. Un processus est dit correct sil
nest jamais tomb en panne
2003-2004, S. Krakowiak
Un peu dhistoire
Solution initiale : Gray (1978), protocole de validation 2 phases (2-phase
commit, ou 2PC)
2003-2004, S. Krakowiak
2003-2004, S. Krakowiak
10
coordinateur participant
p0
pi
coordinateur
p0
enqute ?
participant
pi
enqute ?
enqute ?
ph. 1
vote
vote
vote
pas
tous
OUI
tous
OUI
coordinateur participant
p0
pi
Participant : si le
coordinateur na pas
rpondu aprs le dlai de
garde, on suppose quil
est en panne
enqute ?
vote
ph. 2
valider
annuler
dlai de garde
2" + #
temps
coordinateur participant
p0
pi
11
2003-2004, S. Krakowiak
dlai de
garde 2" + T
coordinateur participant
p0
pi
enqute ?
vote
OUI
vot (NON)
vot (OUI)
possible
possible
vot (NON)
possible
possible
tat pj
dcid
valider
dcid
annuler
enqute ?
2003-2004, S. Krakowiak
enqute ?
ph. 1
vote
possible
possible
14
coordinateur participant
p0
pi
enqute ?
vote
vote
prparer
ack
pas
tous
OUI
annuler
tous
ack
ph. 3
possible
valider
15
2003-2004, S. Krakowiak
prparer
ack
incertain
possible
ph. 1
possible
2003-2004, S. Krakowiak
tous
OUI
possible
possible
dcid
annuler
possible
dcid
valider
2
prt
3
valider
4
valid
16
Il ny a pas dtat o pi soit incertain (aprs vote OUI) et pj ait dcid valider.
Le protocole 3PC introduit une connaissance partage.
2PC : un processus qui dcide valider sait que tous ont vot OUI
3PC : un processus qui dcide valider sait (en outre) que tous savent
que tous ont vot OUI
tat pi
tat pj
vot (OUI)
vot (NON)
vot (OUI)
possible
possible
vot (NON)
possible
possible
prt
possible
dcid
valider
dcid
annuler
possible
prt
dcid
valider
possible
! Motivations
" Le problme de la connaissance partage identifi dans 3PC peut
tre abord en utilisant un protocole de diffusion
" Il existe de nombreux protocoles de diffusion (tudis plus tard
dans le cours). Les spcifications de chaque protocole doivent tre
adaptes aux hypothses de dfaillance et aux besoins spcifiques
dutilisation
dcid
annuler
! Dmarche
possible
possible
possible
possible
possible
possible
possible
possible
2003-2004, S. Krakowiak
17
2003-2004, S. Krakowiak
18
Coordinator
Participant
. Babaoglu, S. Toueg, Non-blocking Atomic Commitment, in S. Mullender (ed.), Distributed Systems (2nd
edition), Addison-Wesley, 1993
19
20
2003-2004, S. Krakowiak
21
diffusion simple
22
uniformit
Cette diffusion a la proprit tout ou rien (diffusion fiable). En cas de panne de
lmetteur pendant la diffusion, le message est dlivr tous les participants ou
aucun. En outre luniformit garantit laccord entre tous les processus : si un
processus a dcid avant de tomber en panne, tous les processus corrects
destinataires sont au courant de cette dcision. Donc le scnario de blocage est
impossible
2003-2004, S. Krakowiak
2003-2004, S. Krakowiak
Participant
set-timeout (Cknow + $c + ")
wait-for (receipt of VOTE_REQUEST from coord.)
send (vote) to coordinator
if (vote = NO) then
decide (abort)
else
set-timeout (Cknow + $c + 2" + $b )
wait-for(delivery of decision messages)
if (decision mess. is abort) then
decide (abort)
else decide (commit)
on-timeout
decide (abort)
on-timeout
decide (abort)
24
Diffusion simple
On peut dmontrer (cf Babaoglu & Toueg) que le protocole de validation utilisant
la diffusion fiable uniforme synchrone (UTRB) satisfait aux spcifications de la
validation, y compris labsence de blocage :
metteur :
send (m) to all processes in G
deliver (m)
2003-2004, S. Krakowiak
25
! Importance
" Pratique : algorithme de base pour la ralisation de transactions
rparties
26
metteur :
send (m) to all processes in G
deliver (m)
Rappel : un message
envoy via send par un
processus correct parvient
son destinataire
(correct) en un temps t < "
! Solutions
" Ncessitent en pratique des hypothses fortes sur la
communication et le synchronisme
" Protocoles de base : 2PC, 3PC
! Reste voir
" Relations entre validation et consensus
# consquences thoriques
# consquences pratiques
2003-2004, S. Krakowiak
28