Gestion du temps et des états dans les systèmes distribués

Page 1 sur 27Lecteur de document UniversityLib

Gestion du temps et des états dans les systèmes distribués

Distributed Systems · notes

Browse all gestion et économie documents

Gestion du temps et des ´etats dans les syst`emes distribu´es

Gestion du temps et des ´etats dans les syst`emes

distribu´es

K. Barbaria

Facult´e des Sciences de Bizerte

Octobre 2009

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

1/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

1

Introduction

2 Relation de causalit´e

3 Horloges logiques

4 Horloges vectorielles

5 Gestion des ´etats

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

2/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Introduction

La latence caract´erise les syst`emes distribu´es.

Les d´elais sont dˆus au moyen de communications. Ces d´elais

sont significatifs et variables

Il est possible d’avoir des ex´ecutions diff´erentes d’un mˆeme

protocole (avec des r´esultats diff´erents) `a cause des variations

de d´elais

Exemple : un chef envoie un premier message pour demander

l’ouverture d’une vanne. Quelques minutes apr`es, il envoie un

second message pour demander la fermeture.

Selon les d´elais de transfert, on peut avoir une quantit´e de

liquide variable.

Que se passe t’il si les message se d´edoublent dans le canal de

transmission?!

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

3/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

´Evenements dans un systeme distribu´e

´Ev`enement

On appelle ´evenement tout changement dans l’´etat d’un systeme.

L’ordre sur les ´ev`enements est important, par exemple pour

mettre en place une exclusion mutuelle.

Deux ´ev`enements ne peuvent avoir lieu exactement en mˆeme

temps. Il est toujours possible pour un observateur externe

suffisamment pr´ecis de dire quel ´evenement pr´ecede l’autre.

Dans un systeme distribu´e, les processus n’ont pas acces `a

temps global (uniquement des horloges locales plus ou moins

synchronis´ees). Il est donc tr`es difficile pour un processus de

d´efinir un ordre pr´ecis sur les ´ev`enements.

Plus grave : deux observations faites par deux processus

diff´erents peuvent diff´erer (dates et ordres des ´ev`enements

per¸cus) ⇒ ”probl`emes de d´ecisions coh´erentes”

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

4/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

´Evenements dans un systeme distribu´e

Peu importe que l’ordre des ´ev`enements soit chang´e (par

rapport `a l’ordre d´efini par un observateur externe) par le

syst`eme, il faut surtout qu’il soit le mˆeme pour tous les

processus.

Imaginons un compte en banque r´epliqu´e sur trois sites selon

le sch´ema suivant. Quel est le solde final pour chacun des

sites?

ti: op´erations de mises `a jour (t1=+20;t2=-10;t3=+10%)

Mi : messages pour demander les mises `a jour des copies la

Valeur initiale du solde sur chaque site : 200 TND.

S1

S2

S3

t1

M1

M1

M3

t3

M2

t2

M3

M2

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

5/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Causalit´e

Causalit´e (Wikipedia)

”En physique, le principe de causalit´e affirme que si un ph´enom`ene

(nomm´e cause) produit un autre ph´enom`ene (nomm´e effet), alors

l’effet ne peut pr´ec´eder la cause. `A ce jour, il n’a pas ´et´e mis en

d´efaut par l’exp´erience”

Dans la grande majorit´e des cas, il n’est pas n´ecessaire d’avoir

une forte synchronisation des horloges. Il faut surtout mettre

en ´evidence la d´ependance causale entre les ´ev`enements.

Il ne jamais contredire le principe de causalit´e, au risque

d’incoh´erences graves au niveau du SD.

L’envoi d’un message au niveau d’un site pr´ec`ede forc´ement

sa r´eception au niveau d’un autre site.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

6/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Ordre causal

Relation de pr´ec´edente causale

Trois lois basiques d´efinissent une relation d’ordre (pr´ec`ede) sur les

´evenements d’un systeme distribu´e. Cette relation est not´ee “→”.

1 Ordre local: a→b si a et b sont g´en´er´es dans cet ordre au

niveau d’un mˆeme site.

Advertisement

2 Propri´et´e de causalit´e ´el´ementaire: a→b si a et b sont

respectivement les ´ev`enements d’envoi et de r´eception d’un

mˆeme message.

3 Transitivit´e: si a→b et b→c alors a→c

L’ordre local est facilement ´etabli en utilisant une horloge ou

un compteur (a incr´ementer a l’occurrence des ´ev`enements)

La relation de pr´ec´edence causale est une relation d’ordre

partiel : il est possible d’avoir deux ´evenements impossibles a

classer par cette relation d’ordre : ´ev`enements concurrents.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

7/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Ordre causal (2)

Classer causalement les diff´erents ´ev`enements ayant lieu sur

les sites S1, S2 et S3.

Quels sont les ´ev`enements concurrents? (distinguer la

concurrence physique de la concurrence logique (ou causale).

e11 e12

e13

e14

e15

e21

e22 e23

e24

e25

e31

e32

e33

e34

S1

S2

S3

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

8/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Ordre causal (3)

Si deux ´evenements se pr´ecedent causalement alors ils se

pr´ec`edent r´eellement (ordre ´etabli par un observateur r´eel,

externe au syst`eme). L’inverse n’est pas vrai. Deux

´evenements qui se pr´ecedent r´eellement peuvent ne pas ˆetres

class´es par la relation d’ordre causal (´ev`enements

concurrents).

Concurrence logique : pas de causalit´e

Concurrence physique : occurrence en mˆeme temps physique.

Deux ´ev`enements peuvent ˆetre concurrents logiquement

mˆeme s’ils ne sont pas concurrents physiquement.

Si deux ´ev`enements sont en concurrence logique, l’ordre de

leurs ex´ecutions (avant, apr`es, en mˆeme temps) ne change pas

le r´esultat des interactions entre les processus.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

9/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Ordonnancement des ´ev`enements distribu´es

La relation de pr´ec´edente causale est fondamentale. Si tous

les processus peuvent avoir le mˆeme ordre sur les ´ev`enements

qui les int´eressent ils pourront interagir sans conflits.

Pour ´etablir un ordre sur les ´ev`enements, on leurs associe des

dates en utilisant des horloges.

Propri´et´es des horloges :

Monotonie : l’horloge doit toujours avancer (s’il y a des

corrections, il faut les appliquer en incr´ementant l’horloge.

Deux ´ev`enements diff´erents ne doivent pas avoir la mˆeme date.

Coh´erence : Si a → b alors H(a) < H(b)

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

10/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Horloges logiques

La relation de pr´ec´edence causale permet aux processus de

distinguer les ´evenements concurrents des ´evenements qu’ils

doivent trait´es dans l’ordre.

Il faut donner le moyen aux processus de d´ecider de cette

d´ependance causale. Id´ealement, il faut donner `a chaque

processus le moyne d’´etablir un ordre total sur tous les

´evenements du systeme.

Il est possible pour un processus d’´etablir un tel ordre en se

basant uniquement sur des informations consultables

localement. Les horloges logiques permettent d’avoir cet

ordre.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

11/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Algorithme de l’horloge logique (de Lamport)

Objectif : R´ealiser une datation des ´ev`enements compatible

avec la causalit´e et d´efinissant un ordre total sur les

´ev`enements.

Algorithme : chaque site Si maintient une variable Hi .

Initialisation : Hi ← 0 ∀i

1

2 A chaque ´ev`enement local sur Si : Hi ← Hi +1;

3 ´Emission d’un message : ´ev`enement local, cause une

incr´ementation de Hi . Le message est estampill´e par la date de

son ´emission. ∀m message : H(m) ← H(´emission(m))

4 R´eception d’un message m : Hi ← max (Hi ,H(m)) +1;

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

12/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Exemple d’application

S1

e11 e12

e13

e14

Advertisement

e15

1

2

3

4

5

S2

e21

1

e22

e23

e24

e25

3

4

5

6

S3

e31

1

e32

5

e33

e34

6

7

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

13/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Ordre d´efini par les horloges logiques

Soient deux ´ev`enements a et b, H(a) et H(b) d´esignent leurs

dates respectives. L’ordre d´efini par les horloges de Lamport

est not´e “<<”. a<<b (a pr´ec`ede b) si

H(a)<H(b)

H(a)=H(b) et le site de a est plus petit que le site de b.

L’ordre ainsi d´efini est total : il est possible d’ordonner tous

les ´evenements du systeme.

Sur l’exemple cela donne :

e11 << e21 << e31 << e12 << e13 << e22 << e14 <<

e23 << e15 << e24 << e32 << e25 << e33 << e34

Application : exclusion mutuelle, multicast totalement

ordonn´e et r´eplication.

Limites : i. la comparaison des dates des horloges ne permet

pas de dire si un ´ev`enement a eu lieu avant l’autre

(H(a) < H(b) ; a → b . ii. les horloges ne sont pas born´ees.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

14/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Horloges vectorielles

Objectif : On suppose que les sites sont class´es de 1 `a n.

Algorithme : Chaque site Si maintient un vecteur Vi de

taille n.

Initialisation : Vi = (0,. . . ,0)

A chaque ´ev`enement local sur Si : Vi [i] ← Vi [i]+1

´Emission d’un message : Vi [i] ← Vi [i]+1. Le message est

estampill´e par la date de son ´emission. ∀m message :

V (m) ← V (emission(m))

R´eception d’un message m : Vi [i] ← Vi [i]+1 et

Vi [j] ← max(V (m)[j], Vi [j])∀i 6= j

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

15/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Exemple d’application

S1

000

S2

000

S3

00 0

e11

e12

e13

001

002

003

e14

004

e15

005

e21

001

e22

022

e23

023

e24

e25

024

045

e31

0 10

e32

232

e33

e34

243

442

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

16/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Ordre d´efini par les horloges vectorielles

Relation d’ordre sur les horloges vectorielles

V ≤ V ′ ssi ∀i V [i] ≤ V ′[i]

Advertisement

V < V ′ ssi V ≤ V ′ et ∃i; V [i] 6= V ′[i]

V ||V ′ ssi non (V < V ′) et non (V ′ < V )

Les horloges vectorielles repr´esentent exactement la

d´ependance causale : ∀a, b evts

a → b ⇔ Va < Vb

a||b ⇔ Va||Vb

Les horloges vectorielles ne d´efinissent pas un ordre total.

Les horloges vectorielles comptent le nombre d’´ev`enements

qui pr´ecedent un ´evenement donn´e sur l’ensemble des sites. Si

Ve[i ] = m, il y a m ´evenements qui pr´ecedent e sur le site Si

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

17/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Applications et limites

Applications :

D´eterminent tous les ´ev`enements concurrents

Multicast causalement ordonn´e.

V´erification de la coh´erence de points de reprise.

Limites :

Les vecteurs doivent ˆetre transport´es avec tous les messages.

Probleme de passage a l’´echelle si le nombre de processus est

grand.

Les horloges ne sont pas born´ees.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

18/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Etat global d’un SD : exemple introductif

S1

S2

S3

S1

S2

S3

c21

t1

1

0

0

0

t2

0

0

0

1

t3

0

1

0

0

Un jeton circule entre S1, S2 et S3 (message en pointill´e). A

tout instant le jeton est soit au niveau de l’un des sites soit en

transit (dans l’un des canaux des communications)

S3 veut savoir combien de jetons existent dans le syst`eme

(messages en rouge). Qu’aura t-il en r´eponse?. Est t-il

possible d’avoir d’autres r´eponses?

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

19/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Etat global d’un SD : exemple introductif

S1

S2

S3

S3 aura l’impression qu’il y a deux jetons qui circulent.

C’est une vision incorrecte de l’´etat global du syst`eme.

Le probl`eme de construire une vision coh´erente de l’´etat

global d’un syst`eme distibu´e est difficile.

Il est impossible d’avoir une vision simultan´ee des ´etats des

autres processus et des diff´erents canaux de communications.

Il faut donc construire une vision de l’´etat global `a partir de

visions prises `a des instants diff´erents mais qui rend une

information utile et coh´erente sur le syst`eme. Cette vision ne

doit en aucun cas contredire la r´ealit´e.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

20/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Etat global d’un SD

Chaque processus Si poss`ede un ´etat local eli . cet ´etat r´esulte

de son ´etat initial et de la s´equence des ´ev`enements ayant lieu

sur le site.

Chaque canal de communication cij (entre Si et Sj ) admet

pour ´etat ecij l’ensemble des messages en transit (´emis par Si

et pas encore re¸cus par Sj )

Actions influant sur l’´etat global :

Evenement interne a un site Si : changement de eli

Envoi d’un message m de Si vers Sj : cij ← cij ∪ m

R´eception d’un message m envoy´e de Sj vers Si : cij ← cij − m

L’´etat global du syst`eme est donn´e par [

i

eli + [

i ,j

ecij

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

21/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Etat global coh´erent

Un ´etat global coh´erent est un global compatible avec le

principe de causalit´e.

Si l’emission d’un message est capt´e dans eli alors soit sa

r´eception est capt´ee dans elj , soit il appartient `a cij

Si l’emission de m n’est pas capt´ee dans eli alors sa r´eception

n’est pas capt´ee dans elj

Un ´etat global coh´erent corrspond `a une coupure coh´erente

Advertisement

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

22/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Etat global et coupure

Coupure

Une coupure est un ensemble d’´ev`enements contenant au moins un

´ev`eenemement par site.

Coupure coh´erente

Une coupure est dite coh´erente si elle est ferm´ee par la relation de

d´ependance causale. Soit C une couptre , a et b deux evts. C est

coh´erente ssi : (a ∈ C et a → b) ⇒ b ∈ C

S1

S2

S3

S1

S2

S3

(a) pas coh´erente

(b) coh´erente

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

23/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Date d’une coupure

Date d’une coupure

On appelle date de la coupure C = (c1, ..., cn) le vecteur d´efini par

V(C) = sup(V (c1), ..., V (cn)), V (ci ) ´etant l’horloge vectorielle

associ´ee `a ci .

100 200

300

010

220

230

240

S1

S2

S3

001

222

243

100 200

300

010

220

230

240

001

232

233

S1

S2

S3

(c) pas coh´erente

(d) coh´erente

V (Cc )=sup([3,0,0];[2,3,0];[2,4,3])=[3,4,3]

V (Cd )=sup([3,0,0];[2,4,0];[2,3,2])=[3,4,2]

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

24/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Condition de coh´erence d’une coupure

Condition de coh´erence d’une coupure

Une coupure C = (c1, ..., cn) est coh´erente ssi

V (C ) = sup(V (c1), ..., V (cn)) = (Vc1[1] . . . Vci [i ] . . . Vcn[n])

Pour la coupure d : (Vc1[1] . . . Vci [i ] . . . Vcn[n])=[3,4,2]. Elle

est donc coh´erente!

Pour la coupure c : (Vc1[1] . . . Vci [i ] . . . Vcn[n])=[3,3,3]. Elle

n’est pas coh´erente. Le vecteur nous indique d’o`u vient le

probleme : un ´evenement sur le site 2.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

25/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Algorithme de Chandy-Lamport

Algorithme de Chandy-Lamport

Envoi d’un marqueur par Si :

1 Si enregistre son ´etat

2 Pour chaque canal cix Si envoie le marqueur en utilisant ce

canal avant d’envoyer tout autre message.

R´eception d’un marqueur par Sj (par le canal cxj ):

1 Si Sj n’a pas encore enregistr´e son ´etat, il effectue un envoi de

marqueur comme d´ecrit ci dessus.

2 Sinon Sj met `a jour l’´etat du canal : ecxj ={messages re¸cus

par ce canal apr`es l’enregistrement de l’´etat de Sj et avant la

r´eception du marqueur}

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

26/27

Gestion du temps et des ´etats dans les syst`emes distribu´es

Exemple d’application

S1

S2

S3

ec21

ec12

ec23

ec13

Le jeton est capt´e dans l’´etat du canal ec12

Reste une phase de construction de l’´etat global. Les

informations ´echangent `a leurs ´etats locaux (dont la coh´erence

est assur´ee) ainsi que les ´etats des canaux qu’ils ont eregistr´es.

Syst`emes Distribu´es (FSB 2009)

K. Barbaria

27/27