Quand le consensus est plus simple que la
diffusion fiable
Carole Delporte-Gallet1, St´
ephane Devismes2, Hugues Fauconnier1,
Franck Petit3et Sam Toueg4
1LIAFA, Universit´
e Denis Diderot, Paris VII
2VERIMAG, Universit´
e Joseph Fourier, Grenoble I
3INRIA/LIP, Universit´
e de Lyon/ENS Lyon
4Department of Computer Science, University of Toronto
Nous nous int´
eressons `
a l’impact de la limitation de la m´
emoire sur des probl`
emes algorithmiques distribu´
es classiques
dans le contexte de syst`
emes asynchrones sujets aux pannes franches. Les r´
esultats pr´
esent´
es sont issus de [DGDF+08].
Keywords: Tol´
erance aux pannes, consensus, consensus r´
ep´
et´
e, diffusion fiable
1 Introduction
Contexte. Il n’est pas n´
ecessaire d’insister sur l’importance des probl`
emes d’accord (le consensus, par
exemple) et de diffusion (la diffusion fiable, par exemple). Ce sont des outils pr´
esents dans la plupart des
applications distribu´
ees. Ici, nous nous int´
eressons `
a ces probl`
emes dans le cadre de la tol´
erance aux pannes.
En 1985, Fischer, Lynch et Paterson [FLP85] ont d´
emontr´
e un r´
esultat d’impossibilit´
e fondamental pour
l’algorithmique distribu´
ee tol´
erante aux pannes : il n’existe pas d’algorithme d´
eterministe de consensus dans
un r´
eseau asynchrone o`
u au plus un processus tombe en panne. Depuis, plusieurs approches ont ´
et´
e pro-
pos´
ees pour contourner cette impossibilit´
e : l’approche probabiliste, consid´
erer des syst`
emes partiellement
synchrones, utiliser des d´
etecteurs de pannes.
Dans cet article, nous utilisons des d´
etecteurs de pannes [CT96]. Cette approche consiste `
a supposer
l’existence d’une fonction locale `
a chaque processus qui donne des informations (erron´
ees ou non) sur les
d´
efaillances — g´
en´
eralement, une liste de processus suspect´
es d’ˆ
etre en panne. D’un point de vue th´
eorique,
un d´
etecteur de d´
efaillances encapsule la connaissance n´
ecessaire sur les d´
efaillances des processus permet-
tant de r´
esoudre un probl`
eme. Il existe plusieurs familles de d´
etecteurs de d´
efaillances, e.g.,P,S,, . . .
Ces familles peuvent ˆ
etre compar´
ees par r´
eduction : un d´
etecteur Dest dit plus faible qu’un d´
etecteur D
s’il existe un algorithme utilisant Dqui simule D. De plus, s’il n’existe pas d’algorithme utilisant Dqui
simule D, alors Dsera dit strictement plus faible que D(dans ce cas, nous noterons D<D). Puisqu’il
existe une hi´
erarchie parmi les familles de d´
etecteurs de d´
efaillances, une question naturelle est la suivante :
«Quel est le d´
etecteur de d´
efaillances le plus faiblequi permet de r´
esoudre un probl`
eme donn´
e ? ». Cette
question a ´
et´
e largement trait´
ee dans le contexte des syst`
emes avec m´
emoire infinie, par exemple, pour le
consensus, la diffusion fiable, la conception de registres atomiques, . . . En revanche, cette question n’a pas
´
et´
e abord´
ee, `
a notre connaissance, pour des syst`
emes avec processus `
a m´
emoire finie.
Contribution. Nous consid´
erons des r´
eseaux asynchrones, bi-directionnels, complets, ayant un nombre
fini de processus. Un nombre quelconque de processus peut tomber d´
efinitivement en panne. Les liens
de communication peuvent perdre des messages mais de mani`
ere ´
equitable. Cette derni`
ere hypoth`
ese,
nous contraint `
a supposer que les liens de communication sont FIFO (voir [LMF88]). Dans la suite, nous
I.e., quel est le d´
etecteur n´
ecessaire et suffisant.
I.e., si un processus penvoie une infinit´
e de messages au processus q, alors qen recevra une infinit´
e.
inria-00383349, version 1 - 12 May 2009
Manuscrit auteur, publié dans "AlgoTel (2009)"
Carole Delporte-Gallet, St´
ephane Devismes, Hugues Fauconnier, Franck Petit et Sam Toueg
consid´
erons deux types de ces syst`
emes : les syst`
emes ΦFo`
u chaque processus dispose d’une m´
emoire
finie et les syst`
emes ΦIo`
u les processus n’ont pas de borne sur la taille de leur m´
emoire.
Nous nous int´
eressons `
a la conception d’algorithmes pour la diffusion fiable, le consensus et le consensus
r´
ep´
et´
e dans les syst`
emes de type ΦF. Notre contribution est triple : tout d’abord, nous d´
emontrons que le
d´
etecteur de d´
efaillances Pest le plus faible d´
etecteur qui permette de r´
esoudre la diffusion fiable dans
les syst`
emes de type ΦF. Ensuite, nous prouvons que le consensus peut ˆ
etre r´
esolu dans ΦFavec un
d´
etecteur de d´
efaillances plus faible : S. En dernier lieu, nous montrons que Pest le plus faible d´
etecteur
de d´
efaillances permettant de r´
esoudre le consensus r´
ep´
et´
e dans ΦF.
En cons´
equence, cela signifie que dans les syst`
emes `
a m´
emoire finie, (1) le consensus est plus simple `
a
r´
esoudre que la diffusion fiable et (2) la diffusion fiable est aussi difficile `
a r´
esoudre que le consensus r´
ep´
et´
e.
Ce r´
esultat s’oppose aux r´
esultats dans les syst`
emes `
a m´
emoire infinie o`
u la diffusion fiable est plus simple
`
a r´
esoudre que le consensus et o`
u le consensus est aussi difficile `
a r´
esoudre que le consensus r´
ep´
et´
e.
Plan. Dans la section suivante, nous d´
efinissons les d´
etecteurs de d´
efaillances utilis´
es dans cet article.
Puis, dans les sections 3 `
a 5, nous consid´
erons la diffusion fiable, le consensus puis le consensus r´
ep´
et´
e
dans un syst`
eme ΦF. Les perspectives de ce travail sont pr´
esent´
ees dans la section 6.
2 D´
etecteurs de d´
efaillances
Nous utilisons deux types de d´
etecteurs de d´
efaillances connus et nous introduisons une variante du
d´
etecteur de d´
efaillances parfait. Les d´
etecteurs de d´
efaillances se d´
efinissent `
a l’aide de deux propri´
et´
es :
la compl´
etude et l’exactitude. Tous les d´
etecteurs consid´
er´
es ici v´
erifient la compl´
etude suivante : chaque
processus qui tombe en panne finira par ˆ
etre suspect´
e pour toujours par les processus corrects (i.e., les
processus qui ne tombent jamais en panne). De ce fait, les d´
etecteurs que nous utiliserons diff`
erent par
leur exactitude. Un d´
etecteur parfait (not´
eP) v´
erifie l’exactitude forte : aucun processus n’est suspect´
e
avant qu’il ne tombe en panne. Un d´
etecteur presque parfait (not´
eP) v´
erifie l’exactitude «presque »
forte : aucun processus correct ne sera jamais suspect´
e. Enfin, un d´
etecteur fort (not´
eS) v´
erifie l’exactitude
faible : il existe un processus correct qui ne sera jamais suspect´
e. Notons que nous avons : S<P<P.
Sans perte de g´
en´
eralit´
e, nous supposons que lorsqu’un processus est suspect´
e, il l’est pour toujours.
3 Diffusion fiable
Tout d’abord, nous consid´
erons le probl`
eme de la diffusion fiable dans ΦF. Tout algorithme de diffusion
fiable v´
erifie les trois propri´
et´
es suivantes : (validit´
e) si un processus correct diffuse un message malors tous
les processus corrects d´
elivrent multimement, (accord) si un processus d´
elivre un message de diffusion m
alors tous les processus corrects d´
elivrent multimement et (int´
egrit´
e) pour chaque message de diffusion m,
tout processus d´
elivre mau plus une fois, et seulement si ma´
et´
e ant´
erieurement diffus´
e par l’´
emetteur de
m. Nous montrons maintenant que Pest n´
ecessaire et suffisant pour r´
esoudre la diffusion fiable dans ΦF.
Pest n´
ecessaire. Pour d´
emontrer que Pest n´
ecessaire pour r´
esoudre la diffusion fiable dans ΦF, nous
proc´
edons par r´
eduction : nous supposons l’existence d’un algorithme de diffusion fiable Apour un syst`
eme
ΦFutilisant un d´
etecteur de d´
efaillances Det nous montrons que nous pouvons simuler Pen utilisant A.
Notre preuve utilise le r´
esultat interm´
ediaire suivant : il existe un entier k tel que pour tout processus p,
tout processus correct q et toute ex´
ecution E de Ao`
u p diffuse et d´
elivre k messages, il y a au moins un
message de q qui est rec¸u par un processus.
L’id´
ee derri`
ere ce r´
esultat est la suivante : plusieurs diffusions peuvent ˆ
etre initi´
ees par pen parall`
ele. Ce-
pendant les liens de communication du syst`
eme ´
etant non fiables, un ou plusieurs processus doivent garder
en m´
emoire tout message diffus´
e par pjusqu’`
a avoir la certitude que les processus corrects, qen particulier,
l’aient d´
elivr´
e. L’unique mani`
ere d’apprendre que qa d´
elivr´
e un message est qu’au moins un processus
rec¸oive un accus´
e de r´
eception de q. Or, comme les m´
emoires des processus sont finies, l’ensemble des
messages pouvant ˆ
etre stock´
es dans le syst`
eme est fini lui aussi.
En utilisant le r´
esultat interm´
ediaire, nous proposons maintenant un algorithme pour simuler P. Cet
algorithme utilise le module pr´
esent´
e dans la figure 1 : le processus putilise A(p,q)pour surveiller le pro-
inria-00383349, version 1 - 12 May 2009
Quand le consensus est plus simple que la diffusion fiable
cessus q.A(p,q)fonctionne comme suit : pessaie de diffuser kmessages mais attend d’avoir d´
elivrer le
message courant avant de passer `
a la diffusion suivante. Le processus qne fait rien. Les autres processus
ex´
ecutent Anormalement. D’apr`
es le r´
esultat interm´
ediaire, si qest correct alors pne peut pas d´
elivrer les
kmessages et donc ne sort jamais de la boucle «pour ». Si qfini par tomber en panne alors il n’est pas
distinguable d’un processus initialement en panne. Or par d´
efinition, une diffusion fiable doit terminer en
d´
epit des pannes. Donc, dans ce cas, pfinira par sortir de la boucle «pour ». Comme Out put pest initialis´
e
`
a/
0et qu’il est affect´
e`
a{q}seulement si psort de la boucle, nous avons la propri´
et´
e suivante : si qest cor-
rect alors Out put q=/
0pour toujours, sinon (si qtombe en panne) Out put q vaut ultimement {q}. L’union
des Out put qpour chaque processus qdonne `
apun d´
etecteur de d´
efaillances de type P. D’o`
u, Pest
n´
ecessaire.
1: /CODE DU PROCESSUS p/
2: d´
ebut
3: Out put q/
0
4: Pour i=1`
akfaire
5: diffuser men utilisant A
6: attendre que pd´
elivre m
7: Fin Pour
8: Out put q← {q}
9: fin
10: /CODE DU PROCESSUS q/
11: d´
ebut
12: fin
13: /CODE DES PROCESSUS DANS Π− {p,q} ∗/
14: d´
ebut
15: ex´
ecuter le code de A
16: fin
17:
18:
FIG. 1: A(p,q)
Pest suffisant. Pour d´
emontrer que Pest suffisant pour r´
esoudre la diffusion fiable dans ΦF, nous
proposons un algorithme de diffusion fiable utilisant Pdans ΦF. Cet algorithme de diffusion doit tol´
erer
deux types de fautes : les pertes de messages et les pannes de processus. Pour tol´
erer les pertes de messages,
nous utilisons tout simplement le protocole du bit altern´
e [Ste76]. De ce fait, nous disposons d’une primitive
de communication point-`
a-point fiable en d´
epit du caract`
ere non-fiable des liens. En utilisant cette primitive
et P, l’algorithme tol`
ere les pannes de processus en appliquant les principes suivants. Soit pun processus
souhaitant diffuser un message m.penvoie un message de diffusion hp-BRD,mi`
a tous les processus puis
attend un accus´
e de r´
eception p-ACK de tous les processus non-suspect´
es avant de d´
elivrer m. Une fois que
pa d´
elivr´
em, la diffusion est termin´
ee. Pour assurer la propri´
et´
e d’accord nous devons assurer que si p
tombe en panne durant la diffusion mais qu’un autre processus a d´
elivr´
e le message alors tous les processus
corrects ont d´
elivr´
e ou d´
elivreront m. Pour ce faire, chaque processus non-´
emetteur qd´
elivre mseulement
s’il est sˆ
ur que tous les processus corrects ont rec¸u m: lorsque qrec¸oit le message de diffusion hp-BRD,mi,
il re-transmet le message `
a tous les processus qu’il ne suspecte pas sauf pet attend un accus´
e de r´
eception
de tous les processus non-suspect´
es pour d´
elivrer m. De ce fait, qpeut recevoir un message de diffusion de
pvia un autre processus. Pour synchroniser le syst`
eme, chaque processus qaccuse r´
eception `
a l’´
emetteur
du message mseulement s’il n’est pas l’initiateur de la diffusion ou si qa d´
ej`
a rec¸u un accus´
e de r´
eception
pour mde la part de tous les autres processus non-suspect´
es.
4 Consensus
Dans le probl`
eme du consensus, chaque processus propose une valeur et doit d´
ecider une des valeurs
initiale de mani`
ere unanime et irr´
evocable. Plus formellement, tout algorithme de consensus doit v´
erifier
les trois propri´
et´
es suivantes : (accord) au plus une valeur est d´
ecid´
ee, (int´
egrit´
e) seule une valeur initiale
peut ˆ
etre d´
ecid´
ee et (terminaison) tout processus correct d´
ecide ultimement.
Nous montrons ici que Sest suffisant pour r´
ealiser un unique consensus dans ΦF. Pour ce faire, nous
adaptons l’algorithme de [CT96] afin qu’il fonctionne dans ΦF. Dans cet algorithme, chaque processus
dispose d’un tableau V(index´
e sur les identit´
es) o`
u il stocke les valeurs propos´
ees par les processus (ini-
tialement, chaque case est ´
egale `
asauf V[p]qui est ´
egale `
a la valeur propos´
ee par p). Cet algorithme
se d´
eroule en deux phases : une phase d’union o`
u le processus apprend un maximum de valeurs propos´
ees
puis une phase d’intersection o`
u le processus «oublie »certaines valeurs.
La phase d’union se d´
eroule en n1 rondes asynchrones (o`
unest le nombre de processus). Durant
chaque ronde, chaque processus envoie r´
eguli`
erement son tableau aux autres processus (n.b., les messages
sont r´
ep´
et´
es car les liens ne sont pas fiables). Lorsqu’un processus prec¸oit un tableau V, il met `
a jour
inria-00383349, version 1 - 12 May 2009
Carole Delporte-Gallet, St´
ephane Devismes, Hugues Fauconnier, Franck Petit et Sam Toueg
Vavec les nouvelles valeurs apprises. La ronde courante termine lorsque pa rec¸u le tableau de chaque
processus non-suspect´
e. A la fin de la (n1)i`
eme ronde, le tableau de chaque processus correct contient au
moins toutes les valeurs propos´
ees connues par les processus jamais suspect´
es (il en existe au moins un, par
d´
efinition de S).
La phase d’intersection se d´
eroule en une seule ronde asynchrone. Durant cette ronde, chaque processus
envoie r´
eguli`
erement son tableau aux autres processus. La ronde d’un processus termine lorsqu’il a rec¸u
le tableau de chaque processus non-suspect´
e. A la fin de cette ronde, le processus supprime les valeurs
qui ne sont pas pr´
esentes dans tous les tableaux qu’il a rec¸us. De ce fait, le tableau de chaque processus
encore vivant contient exactement les mˆ
emes valeurs, les processus d´
ecident alors la premi`
ere valeur du
tableau diff´
erente de (une telle valeur existe car au moins un processus n’a jamais ´
et´
e suspect´
e). D’o`
u, ils
d´
ecident tous la mˆ
eme valeur : l’algorithme r´
ealise un consensus.
5 Consensus r´
ep´
et´
e
Le probl`
eme du consensus r´
ep´
et´
econsiste `
a r´
ealiser autant de consensus qu’on le souhaite. En utilisant la
m´
ethode de preuve utilis´
ee pour la diffusion fiable, nous avons prouv´
e que P´
etait n´
ecessaire pour r´
esoudre
le consensus r´
ep´
et´
e dans ΦF. Pour d´
emontrer que Pest n´
ecessaire, nous avons construit un algorithme
qui utilise une version simplifi´
ee (car il utilise un d´
etecteur de d´
efaillances plus fort, P) de l’algorithme
de consensus simple vu pr´
ec´
edemment. Notre algorithme construit une barri`
ere de synchronisation entre
chaque ex´
ecution d’un consensus simple. Cette barri`
ere de synchronisation est r´
ealis´
ee en deux rondes
asynchrones. Lors de la premi`
ere ronde, les processus envoient r´
eguli`
erement un message «d´
ecide ». Lors
de la seconde ronde, les processus envoient r´
eguli`
erement un message «nouveau ». Un processus passe `
a
la seconde ronde apr`
es avoir rec¸u un message «d´
ecide »ou «nouveau »de chaque processus non-suspect´
e
(n.b., un processeur peut d´
ej`
aˆ
etre dans la seconde ronde alors que d’autres sont toujours dans la premi`
ere).
De la mˆ
eme mani`
ere, un processus termine la seconde ronde et d´
emarre un nouveau consensus apr`
es avoir
rec¸u un message «nouveau »ou un message de l’algorithme de consensus simple de chaque processus
non-suspect´
e. Cette barri`
ere assure qu’aucun processus ne d´
emarre un nouveau consensus alors qu’un autre
est encore en train d’ex´
ecuter le consensus pr´
ec´
edent. D’o`
u, l’algorithme r´
ealise le consensus r´
ep´
et´
e.
6 Perspectives
La perspective imm´
ediate de ce travail est de trouver le d´
etecteur de d´
efaillances le plus faible pour
r´
esoudre le consensus (simple) dans ΦF. Nous avons d´
ej`
a prouv´
e ici que S´
etait suffisant. Donc, Ssemble
ˆ
etre un bon candidat. Dans de futurs travaux, nous souhaitons ´
etendre nos r´
esultats `
a d’autres types de
probl`
emes comme par exemple la conception de registres distribu´
es. Nous souhaiterions aussi ´
etudier si le
fait de consid´
erer des sp´
ecifications non-uniformes ou un nombre maximal de pannes permet d’obtenir des
solutions avec des d´
etecteurs de d´
efaillances plus faibles.
R´
ef´
erences
[CT96] T. Deepak Chandra and S. Toueg. Unreliable failure detectors for reliable distributed systems.
Journal of the ACM, 43(2) :225–267, 1996.
[DGDF+08] C. Delporte-Gallet, S. Devismes, H. Fauconnier, F. Petit, and S. Toueg. With finite memory
consensus is easier than reliable broadcast. In OPODIS, pages 41–57, 2008.
[FLP85] M. J. Fischer, N. A. Lynch, and M. Paterson. Impossibility of distributed consensus with one
faulty process. Journal of the ACM, 32(2) :374–382, 1985.
[LMF88] N. A. Lynch, Y. Mansour, and A. Fekete. Data link layer : Two impossibility results. In
Symposium on Principles of Distributed Computing, pages 149–170, 1988.
[Ste76] V. Stenning. A data transfer protocol. Computer Networks, 1 :99–110, 1976.
inria-00383349, version 1 - 12 May 2009
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !