Systèmes répartis - Causalité et datation
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