Systèmes répartis - Causalité et datation

35
Probl` eme de datation Protocoles causalement ordonn´ es Diffusion de groupe Syst` emes r´ epartis Causalit´ e et datation erard Padiou epartement Informatique et Math´ ematiques appliqu´ ees ENSEEIHT Octobre 2012 erard Padiou Syst` emes r´ epartis 1 / 35

Transcript of Systèmes répartis - Causalité et datation

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Systemes repartisCausalite et datation

Gerard Padiou

Departement Informatique et Mathematiques appliqueesENSEEIHT

Octobre 2012

Gerard Padiou Systemes repartis 1 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

plan

1 Probleme de datationTemps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

2 Protocoles causalement ordonnesApproche par compteursApproche par surchargeDiffusion causalement ordonnee

3 Diffusion de groupeTolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Gerard Padiou Systemes repartis 2 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Plan

1 Probleme de datationTemps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

2 Protocoles causalement ordonnesApproche par compteursApproche par surchargeDiffusion causalement ordonnee

3 Diffusion de groupeTolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Gerard Padiou Systemes repartis 3 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Probleme de base et difficultes

Comment dater les evenements d’une execution repartie ?Pas d’horloge globale ;

Tous les evenements ne sont pas causalement lies ;

Datation coherente avec la relation causale :

∀e, e ′ : e ≺ e ′ ⇒ de < de′

Exemple

Idee : → Utiliser les horloges de chaque site

Risque : Datation incoherente de l’evenement de receptiond’un message : la date de reception precede la date d’emission.

Possible si l’horloge du site de reception est en retard(suffisamment) sur celle du site de l’emetteur.

Gerard Padiou Systemes repartis 4 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Difficultes

Coherence avec la causalite ;

Datation definissant un ordre total ;

Solutions

Necessite une synchronisation des horloges locales :

invariant Max(hi : i = 1,N)−Min(hi : i = 1,N) < ε

Protocole de synchronisation d’horloges possible mais dans descontextes reseaux assurant une certaine qualite de service ou parl’usage d’un signal diffuse (horloge atomique).

Gerard Padiou Systemes repartis 5 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Temps logique

Principes de base

Compter les evenements au lieu du temps reel ;

Associer a chaque site une horloge logique locale ;

Surcharger les messages avec leur date d’emission ;

Recaler si necessaire l’horloge locale d’un site lors de chaquereception de message ;

Avantage : vision plus abstraite d’un calcul reparti.

Gerard Padiou Systemes repartis 6 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Une tentative. . .

Un compteur « horloge » sur chaque site ;Surcharge des messages et recalage de compteur.

A

B

C

a1 a2 a3 a4

b1 b2

b3

c2c1 c3

0

0

0

(1) (2) (3)

(4)

<1,m1>

Recalage(2) (3)

(5)

(6)

(6)

(7)

1 2 3 6

4 5 6

32

<3,m2> <5,m3>

<6,m4>7

, e ≺ e ′ ⇒ d(e) < d(e ′) ;, Memes dates ⇒ pas causalement lies ;/ mais d(e) < d(e ′) ; e ≺ e ′ (ex : d(c2) < d(b3) ; c2 ≺ b3)

Gerard Padiou Systemes repartis 7 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Horloge de Lamport

Proprietes

Introduit un ordre total entre evenements ;→ Dates distinctes pour tout couple d’evenements

Date = (numero de site, compteur local)⇒ ordre total sur les sites (par leur numero)

public class Date {

protected int s ; protected int cpt ;

static boolean Prec ( Date d1, Date d2 ) {

return (d1.cpt < d2.cpt)

||( (d1.cpt == d2.cpt) && (d1.s < d2.s)) ;

}

}

Gerard Padiou Systemes repartis 8 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Actions associees aux evenements

Type d’evenement sur un site s Action sur le site s

Evenement interne sur s Hs .Top()

Emission sur s de m dm = Hs .Top() ;envoi de < dm,m >

Reception sur s de < dm,m > Hs .Recaler(dm)

A

B

C

a1 a2 a3 a4

b1 b2

b3

c2c1 c3

(A,1)

1

1

<(A,1),m1>

(C,1)

(B,4)

(B,5)

2 3 4 6

4 5 6

32

<(A,3),m2> <(B,4),m3>

<(B,5),m4>6

1(A,2) (A,3) (A,5)

(B,3)

(C,2) (C,5)

Gerard Padiou Systemes repartis 9 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Horloge de Fidge-Mattern

Proprietes

datation isomorphe a l’ordre causal ;

utilisation de vecteurs de dimension egale au nombre de sites ;

cout plus eleve : surcharge des messages par un vecteur.

Expression des relations entre dates

∀D,D ′ : D ≤ D ′ ≡ ∀i : D[i ] ≤ D ′[i ]

∀D,D ′ : D < D ′ ≡ D ≤ D ′ ∧ ∃k : D[k] < D ′[k]

D || D ′ ≡ ¬(D < D ′) ∧ ¬(D ′ < D)

Gerard Padiou Systemes repartis 10 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

Actions associees aux evenements

Type d’evenement sur un site s Action sur le site s

Evenement interne sur s Hs .Top()

Emission sur s de m dvm = Hs .Top() ;envoi de < dvm,m >

Reception sur s de < dvm,m > Hs .Recaler(dvm)

Exemple

(3,3,4)

a1 a3

c1 c3c2

b3b2

A

B

C

b1

a4(1,0,0)

(0,0,1)

(2,0,0) a2 (3,0,0) (4,0,0)

<(1,0,0), m1> <(3,0,0),m2>

(1,0,2) (1,0,3)

(0,1,0) (3,2,0) (3,3,0)

<(3,3,0),m4>

<(3,2,0),m3>

(5,2,0)

(3,4,0)

Gerard Padiou Systemes repartis 11 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Plan

1 Probleme de datationTemps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

2 Protocoles causalement ordonnesApproche par compteursApproche par surchargeDiffusion causalement ordonnee

3 Diffusion de groupeTolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Gerard Padiou Systemes repartis 12 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Definition d’un protocole (causalement) ordonne

Objectif

Garantir la coherence des receptions sur un meme site par rapporta leur causalite eventuelle en emission.

⇒ reordonner les messages recus sur un site

Trois evenements au lieu de deux par message :

l’emission e,la reception r ,la delivrance dCausalite : e ≺ r ≺ d

S’exprime par la propriete :

∀s : (∀m,m′ : rs ∧ r ′s :: e ≺ e ′ ⇒ d ≺ d ′))

Gerard Padiou Systemes repartis 13 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Un essai, mais . . .

Datation causale

Permet la detection des anomalies en reception MAIS pas leurprevention.

A

B

C

e1

e2

r1r2

e

r

< ,M1>

< ,M2>

100

220

220

100

Gerard Padiou Systemes repartis 14 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Principes de l’algorithme

Notion d’histoire causale d’un message Hc(m)

L’histoire causale Hc(m)d’un message m est l’ensemble desmessages qui ont leurs evenements d’emission precedantcausalement l’emission de m :

Hc(m) = {m′ : e ′ ≺ e}

Critere de delivrance d’un message

Un message m est delivre sur un site s ssi tous les messages de sonhistoire causale ayant aussi s comme site de destination ont etedeja delivres :

∀s : ∀m,m′ ∈ Hc(m) : rs ∧ r ′s ⇒ ds′ ≺ ds

Gerard Padiou Systemes repartis 15 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Principes de l’algorithme

Exemple.

?

P1

P2

P3

P4

m10

m1

m2

m3

m4

m7

m5 m6

m8

m9

Gerard Padiou Systemes repartis 16 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Solution : Approche par compteurs (Michel Raynal)

Structures de donnees

+ Representer l’histoire causale de chaque message.

Chaque site gere :

MP : une matrice de precedence causaleMP[i , j ] = nombre de messages emis de Si vers Sj

Dernier : un vecteur de compteurs des messages recus dechaque site

Dernier [i ] = nombre de messages recus du site Si

Tout message est surchargee par une copie de la matrice MPdu site emetteur.

Gerard Padiou Systemes repartis 17 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Actions associees aux evenements

Type d’evenement sur un site s Action sur le site s

Emission sur s de M vers s ′ MPs [s, s ′] + + ;envoi de < MPs ,M >

Reception sur s ′ de < MP,M > MPs′ = max(MP,MPs′)issu de s Dernier [s] + +

Delivrance sur s ′ de < MP,M > Delivrable(M) ≡issu de s Dernier [s] == MP[s, s ′]

∀i 6= s : Dernier [i ] ≥ MP[i , s ′]

Gerard Padiou Systemes repartis 18 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Controle des delivrances

?

P1

P2

P3

P4

0 1 0 0 1 0 2 1 0 1 0 0 1 0 2 0

Dernier = (0,1,0,1)

<m10, >

émis vers P3 m1

m2

m3

m4

m5 m6

m7

m8

m9

Dernier = (0,2,0,1)

0201

Gerard Padiou Systemes repartis 19 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Approche par surcharge (piggybacking)

Principe

Surcharger chaque message avec l’histoire des messages qui leprecedent causalement

Dans le contexte du courrier electronique : Approche similairedu « reexpedier » avec copie de ce que l’on a recu

Exemple

<(m1,C);(m,B)>, m2

A

C

B

e1 e

re2

r2 r1d1 d2

<>,m1

message ignoré

<m1,C>,m

Gerard Padiou Systemes repartis 20 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Approche par surcharge (piggybacking)

Mise en œuvre

, Simple et apport d’une certaine tolerance aux pertes demessages par redondance ;

/ Messages de + en + longs⇒ Quand, Comment reduire les histoires ?

Exemple

Éliminer (m1,C)

A

C

B<>,m1

<(m1,C)>,m2

<(m1,C),m3

<(m2,B);(m3,B)>,m4

Gerard Padiou Systemes repartis 21 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Approche par compteursApproche par surchargeDiffusion causalement ordonnee

Une chance. . .

La diffusion ordonnee est plus simple !

Approche par matrice causale

Il suffit de gerer un vecteur d’emission au lieu d’une matrice.

Toutes les lignes sont identiques : un processus envoie lememe nombre de messages a tous.

<(1,1,1),m’>

Vecteur local

Défaut de causalité

(a,b,c)

A

C

B

(1,0,0) (1,1,0)

(0,0,0)

(1,0,0)

<(1,1,0),m>

Gerard Padiou Systemes repartis 22 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Plan

1 Probleme de datationTemps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

2 Protocoles causalement ordonnesApproche par compteursApproche par surchargeDiffusion causalement ordonnee

3 Diffusion de groupeTolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Gerard Padiou Systemes repartis 23 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Tolerance aux fautesTravaux de Kenneth P. Birman (Cornell University)

Objectif : modele d’execution tolerant aux fautes

Principes

Groupes reconfigurables de processus ;

Service assure par un groupe de serveurs ;

Diffusion inter et intra-groupe ;

Pile de micro-protocoles ;

Synchronisme virtuel ;

Boıtes a outils : Isis, Horus, Ensemble ;

Monde Java : Javagroups (http://www.jgroups.org)

Gerard Padiou Systemes repartis 24 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

La notion de groupe de processus

Diffusion inter-groupes

Les clients ne connaissent que le nom du groupe ;

Les membres ne communiquent pas ;

Diffusion atomique et ordonnee des messages.

Diffusion intra-groupe

Les membres du groupe cooperent ;

Liste des membres connue de chacun ;

Coherence : Meme vision du groupe.

Gerard Padiou Systemes repartis 25 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Problemes cles

Client C

Primaire P

Secondaire S

Client C

Primaire P

Secondaire S

connexion ? ou arrêt ?

Diffusion coherente vers le groupe :

Ordonnancement des messages : fifo, causal, total ;Traitement atomique des defaillances.

Composition du groupe : ajout/retrait d’un membre,historique ;

Synchronisation des traitements des membres.

Gerard Padiou Systemes repartis 26 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Diffusion anarchique

Ordre causal ?

Ordre total ?

Atomicite ?

Arret/Reprise ?

S1 S2 S3C2C1

m4

m5

crash

m3

m2

m1

Gerard Padiou Systemes repartis 27 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Synchronisme fort

Proprietes

Communications fiables ;

Diffusion atomique, i.e. de temps logique nul ;

Atomicite du passage du groupe a la liste de membres ;

Messages delivres a tous les destinataires dans le meme ordre ;

Cet ordre est compatible avec la causalite entre messages ;

Atomicite du transfert d’etat lors de l’insertion d’un processus ;

Fautes atomiques vis-a-vis des diffusions, et ordonneesidentiquement sur tous les sites.

Gerard Padiou Systemes repartis 28 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Synchronisme virtuel

Objectif : s’approcher du synchronisme fort

Cl1

S3

S2

S1

Cl2

Gerard Padiou Systemes repartis 29 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Fonctionnalites d’Isis

Gestion des groupes

Creer/Detruire un groupe ;

Se joindre a un groupe (en tant que membre) ;

Quitter un groupe (dont on est membre) ;

Se connecter a un groupe (en tant que client) ;

Se deconnecter d’un groupe.

Differents types de groupe

groupe de diffusion groupe hiérarchiqueGroupe client−serveurGroupe de pairs

Gerard Padiou Systemes repartis 30 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Fonctionnalites d’Isis

Types de diffusion

fbcast : canal fifo fiable ;

cbcast : diffusion (causalement) ordonnee ;

abcast : diffusion totalement ordonnee atomique ;

gbcast : diffusion utilisee pour la gestion des groupes.(Coherence avec les diffusions ordonnees atomiques)

Gerard Padiou Systemes repartis 31 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Mise en œuvre d’Isis

Structure d’une application (cliente et/ou serveur)

1 initialiser les librairies Isis et se connecter a Isis ;

2 declarer les taches et les points d’entrees ;

3 declarer les gestionnaires de signaux et d’entrees-sorties ;

4 initialiser l’etat de l’application ;

5 se joindre a des groupes et/ou devenir client ;

6 indiquer a Isis qu’elle est prete a recevoir les messages.

Gerard Padiou Systemes repartis 32 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Mise en œuvre d’Isis

Comportement d’un client

void main() {

/* connexion au service Isis */

isis_init();

serveur=pg_lookup("/services/exemple");

pg_client(serveur);

/* emission de requete */

bcast(serveur,NumOp,<argument>,...,0);

}

Gerard Padiou Systemes repartis 33 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Mise en œuvre d’Isis

Comportement d’un serveur (declarations)

void Handler_1(message *m1) {

/* accepter le message */

msg_get(m1,"<format>",var1,...); ...

}

void Handler_p(message *mp) { ...} ;

void send_state() {

/* envoi de l’etat du serveur */

xfer_out("<format>",x,...) ;

}

void rcv_state(message *m) {

/* mise a jour de l’etat du serveur */

}

Gerard Padiou Systemes repartis 34 / 35

Probleme de datationProtocoles causalement ordonnes

Diffusion de groupe

Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

Mise en œuvre d’Isis

Comportement d’un serveur (suite)

void main() {

isis_init(0); /* connexion au service */

/* connexion des handlers */

isis_entry(OP1,Handler_1,"OP1");

...

/* insertion du serveur dans son groupe */

pg_join("/services/exemple",PG_XFER,

send_state, rcv_state,0);

isis_mainloop(0); /* attente d’un appel */

}

Gerard Padiou Systemes repartis 35 / 35