Vous êtes sur la page 1sur 25

INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE

Dterminer un tat global dans un systme rparti


J.-M. Hlary, A. Mostefaoui et M. Raynal

N 2090
Novembre 1993
PROGRAMME 0

Programme 1

apport de recherche

ISSN 0249-6399

1993

Dterminer un tat global dans un systme rparti


J.-M. Hlary, A. Mostefaoui, M. Raynal
Programme 1- Architectures parallles, bases de donnes. rseaux et systmes distribus Projet Algorithmes Distribus et Protocoles Rapport de recherche n2090 - Novembre 1993 - 21 pages Rsum : Le calcul dun tat global dun systme rparti est lun des paradigmes des problmes de contrle rparti. Aprs avoir expos le problme, cet article en analyse et prsente plusieurs solutions. Celles-ci se distinguent les unes des autres par les hypothses quelles font sur les canaux de communication et les messages de contrle utiliss. En plus de son caractre synthtique sur le calcul dun tat global rparti, cet article illustre de nombreuses hypothses (et difcults) propres au contexte rparti. Mots-cl : cohrence, tat global, message de contrle, ordre causal, systme rparti asynchrone.

Ce travail a bnci du soutien du CNET au titre du marche 92 1B 178 (Conception formelle de systmes de coopration haut dbit multimdia, projet CESAME).

Unit de recherche INRIA Rennes IRISA, Campus universitaire de Beaulieu, 35042 Rennes Cedex (France) Tlphone : (33) 99 84 71 00 - Tlcopie : (33) 99 38 38 32

Determining a Global State in a Distributed System


Abstract: Recording a global snapshot of a distributed system is one of the paradigms of distributed control problems. This paper presents and analyses several solutions. They differ by the assumptions made on the communication channels and the use of control messages. Moreover, this paper throws light on assumptions and difculties inherent to a distributed environment. Key-words: causal order, consistency, global state, control message, asynchronous distributed system.

1 Introduction
Parmi les services attendus de la part dun systme, lobservation des programmes en excution est importante plusieurs titres: elle peut permettre de dtecter des proprits caractrisant lexcution (passage dans un tat particulier, vrification dassertions, terminaison, interblocage, etc), deffectuer des mesures de performances, de capter des tats pouvant servir de points de reprise en cas de dfaillances ultrieures de lexcution ou dans le cadre dun metteur au point, etc. Dans un contexte de rpartition, lobservation des programmes en excution prsente des difficults qui rendent le problme non trivial. En effet, un programme rparti est constitu dun ensemble de processus sexcutant en parallle et communiquant seulement par envoi de messages sur des canaux les interconnectant. En particulier, il ny a pas dhorloge commune aux diffrents processus, et de plus, les temps de transfert des messages ne sont pas borns (dans un contexte de communication fiable, ils sont toutefois finis). Dans ces conditions, il est impossible deffectuer une observation simultane de ltat des diffrents processus et canaux. La ralisation dune observation cohrente qui reflte un tat global constitu des tats locaux des diffrentes parties du systme, pris des instants physiques diffrents mais de manire rendre une information utile sur ltat du systme dans son intgralit, constitue donc un problme dsormais classique, connu sous le nom de dtection dun tat global rparti cohrent. Chandy et Lamport illustrent ainsi la dtection dun tat global dun systme [7]. Lalgorithme de dtection dun tat global joue le rle dun groupe de photographes qui observent une scne dynamique, par exemple un vol doiseaux migrateurs. La scne est si vaste quelle ne peut tre prise par un seul photographe. Diffrents photographes doivent donc se charger de prendre chacun une partie de la scne tout en sachant que les photographies ne peuvent tre prises au mme instant et en exigeant que les photographes ne perturbent pas le phnomne observer (par exemple il nest pas raisonnable de demander aux oiseaux darrter leur vol pendant les prises de vue). Il faut aussi que la scne reconstitue ait un sens; reste dfinir ce quest avoir un sens et dterminer la manire de procder pour faire ces prises de vue. Le but de cet article est de prsenter une synthse des diffrentes solutions apportes ce problme, en fonction des hypothses faites sur les communications. Dans la partie 2 sont dfinis plus formellement le modle de calcul, ltat global et les hypothses sur les communications. La partie 3 prsente lalgorithme de base de Chandy et Lamport, qui a servi de modle beaucoup dautres algorithmes, et qui suppose des canaux de communica-

J.M. Hlary, A. Mostefaoui

tion fifos (cest dire sur lesquels lordre de rception des messages est le mme que leur ordre dmission). Les solutions les plus reprsentatives dans le cas o les hypothses de communication sont plus faibles que dans le cas prcdent sont prsentes dans la partie 4; la partie 5 prsente deux solutions lorsque les hypothses de communication sont plus fortes (ordre causal sur lensemble des messages). La partie 6 conclue larticle. Outre la prsentation uniforme et cohrente de diffrentes solutions au problme de ltat global, un des intrts de cet article est de montrer la varit des situations (et des hypothses) qui peuvent apparatre dans un contexte rparti. Il y a lieu de noter que ces solutions sont prsentes dans le cas du calcul dun seul tat global; le lecteur intress par le calcul dune squence dtats globaux pourra consulter [10].

2 Le modle asynchrone
2.1 Le modle de calcul
Un systme rparti est constitu dun ensemble fini de processus qui ne communiquent que par envoi de messages. La structure dun tel systme peut tre modlise par un graphe orient: les sommets de ce graphe sont les processus et les arcs reprsentent les canaux de communication unidirectionnels (canaux virtuels) reliant des processus entre eux. A priori, aucune hypothse particulire nest faite quant la topologie du graphe. La figure 1 montre un exemple de graphe de communication. Les processus seront dsigns par P1, P2,..., Pn et le canal allant de Pi vers Pj, sil existe, sera dsign par cij. Les processus ne partagent ni mmoire commune ni horloge globale, et aucune hypothse nest faite quant leur vitesse relative. Lenvoi et la rception de messages sont effectus de manire asynchrone, mais aucun dlai maximum de transfert des messages nest suppos connu. La seule hypothse gnrale sur les communications concerne leur fiabilit: les messages ne sont ni perdus (le dlai de transfert est fini: tout message mis est reu) ni altrs ni dupliqus (tout message reu a t mis). De telles hypothses caractrisent ce quil est convenu dappeler un systme rparti asynchrone fiable.

Pi

Pj

Pk

Figure 1. Un graphe de communication.

2.2 Etat global


Chaque processus et chaque canal possde tout moment un tat local. Ltat local eli dun processus Pi rsulte de son tat initial et de la squence dvnements dont ce processus a t le sige. Ltat ecij dun canal cij est lensemble des messages en transit sur ce canal, cest dire qui ont t mis par le processus Pi et nont pas encore t reus par le processus Pj. Lvolution du systme est rgie par un ensemble dvnements. Chaque vnement met en jeu un processus et ventuellement un canal. Il y a trois sortes dvnements: les vnements internes un processus, qui ne modifient que ltat local du processus, les missions de messages, qui modifient ltat local du processus metteur et ltat du canal sortant sur lequel est mis le message, et les rceptions de messages, qui modifient ltat local du processus rcepteur et ltat du canal entrant par lequel le message a t reu. Schmatiquement on a, ce niveau de description (m dsigne un message): vnement interne sur Pi: provoque la transition de eli el' i , tats avant et aprs lvnement mission de m par Pi sur cij (cet vnement est not missioni(m)): provoque la transition de eli el' i et laffectation ec ij := ec ij { m } rception de m par Pi sur cji (cet vnement est not rceptioni(m)): provoque la transition de eli el' i et laffectation ec ji := ec ji \ { m } . Chacun de ces vnements est suppos atomique. On dit quun vnement e est capt dans ltat local eli dun processus Pi si e appartient la squence dvnements ayant conduit Pi dans ltat eli. Il est important de remarquer que ltat local dun processus nest immdiatement observable que par un observateur local ce processus (cest dire ayant accs en lecture la mmoire locale de ce processus), tandis que ltat local dun canal cij nest immdiatement observable ni par son origine Pi ni par son extrmit Pj (Pi resp. Pj- na pas connaissance immdiate des vnements de rception -resp. dmission-); cest notamment ce fait qui rend difficile le problme de lobservation cohrente dans un systme rparti. Ltat global S dun systme rparti est constitu de lensemble des tats locaux des processus et des canaux qui le constituent:
S = { el i ,
i

) ecij} (i,j

J.M. Hlary, A. Mostefaoui

Un tat global cohrent correspond un tat global dans lequel le systme peut se trouver. Formellement, cela signifie: i) i : eli est un tat local du processus Pi. ii) Les conditions C1 et C2 qui suivent sont vrifies: C1: si lvnement missioni(m) est capt dans eli, alors lvnement rceptionj(m) est soit capt dans elj, soit le message m appartient ecij. C2: si lvnement missioni(m) nest pas capt dans eli, lvnement rceptionj(m) nest pas non plus capt dans elj. Un tat global cohrent correspond ce quil est convenu dappeler une coupe cohrente ( onsistent cut). Le lecteur intress trouvera dans [5] c une prsentation formelle de la notion dtat global. Exemple Considrons lexcution reprsente par la figure 2, o trois processus Pi, Pj et Pk captent respectivement leurs tats locaux eli, elj et elk (le graphe de communication est celui de la figure 1).
eli Pi m1 Pj m0 Pk m3 m4 elk m2 elj

Figure 2. Une excution rpartie. Lensemble {eli, elj, elk} ne forme pas un tat global. Si lon considre la paire (Pk, Pj), lmission du message m3 est enregistre dans ltat local elk du processus Pk alors que sa rception ne lest pas dans ltat local elj du processus Pj. La condition C1 est mise en dfaut, puisque ltat du canal eckj nest pas considr (un ventuel redmarrage de Pj et de Pk, suite une reprise aprs dfaillance, partir de cet tat global entranerait la perte du message m3). Dautre part, mme en considrant ltat des canaux dans ltat global, la cohrence nest pas assure car la rception du message m4 est enregistre dans elj sans que son mission le soit dans elk, ce qui met en dfaut la condition C2 (les deux tats locaux elj et elk et ltat du canal ecjk ne sont pas mutuellement cohrents).

2.3 Hypothses sur les communications


Dans la partie 2.1, la seule hypothse faite sur les communications est la fiabilit des canaux. Un certain nombre de solutions au problme du calcul dun tat global rparti sappuient sur des hypothses supplmentaires examines ci-dessous. Afin de les exprimer prcisment, nous rappelons la dfinition de la relation de causalit, due Lamport [12] et note , qui structure lensemble des vnements produits par une excution. Dfinition (causalit): tant donn deux vnements e et e' se produisant respectivement sur les processus Pi et Pj, e e' est la plus petite relation satisfaisant les trois points suivants: i) Pi=Pj et e est avant e' dans la squence dvnements de Pi ii) e est lmission dun message m par Pi (vnement missioni(m)), et e' larception de ce mme message par Pj (vnement rceptionj(m)) iii) il existe e'' tel que e e'' et e'' e' (fermeture transitive).

2.3.1 Hypothses propres un canal


Soit c un canal, m et m1 deux messages empruntant ce canal. (Lorsque lmetteur ou le rcepteur dun message nimporte pas, on nindique pas son identit en indice de lvnement correspondant.) On dira que m double m1 si, et seulement si: mission(m1) mission(m) et rception(m) rception(m1) Quatre types possibles de messages peuvent tre dfinis selon les contraintes de doublement [2]. i) Un message m est de type marqueur, sil ne peut ni doubler ni tre doubl par aucun autre message transitant par le mme canal (figure 3): m 1 mission(m1) mission(m) rception(m1) rception(m)
m 2

et

mission(m) mission(m2) rception(m) rception(m2)


Pi Pj marqueur m1 m2

Figure 3. Livraison dun marqueur. ii) Un message m est de type ct-pass (contraint par son pass), sil ne peut doubler aucun message (figure 4):

J.M. Hlary, A. Mostefaoui

m 1 :

mission(m1) mission(m) rception(m1) rception(m)


Pi Pj ct-pass m1 m2

Figure 4. Livraison dun message contraint par son pass.


(tous les messages mis avant lui sont reus avant lui)

iii) Un message m est de type ct-futur (contraint par son futur), sil ne peut tre doubl par aucun message (figure 5): m 2 : mission(m) mission(m2) rception(m) rception(m2)
Pi Pj m1 ct-futur m2

Figure 5. Livraison dun message contraint par son futur.


(tous les messages mis aprs lui seront reus aprs lui)

iv) Un message m de type ordinaire nimpose pas de condition de rception, mais respecte celles imposes par les autres messages transmis sur le mme canal que lui (il ne peut doubler les messages marqueur et ct-futur et ne peut tre doubl par les messages marqueur et ct-pass). En fonction des types des messages mis sur un canal, toute une gamme de comportements peut tre dfinie pour ce canal, depuis le moins contraint (tous les messages sont ordinaires) jusquau plus contraint (tous les messages sont de type marqueur). Dans ce dernier cas, on dit que le canal est fifo, car les messages sont alors reus dans lordre o ils ont t mis. De plus, pour un canal donn, les trois proprits A1, A2 et A3 suivantes sont quivalentes [2]; A1: tous les messages sont de type ct-pass; A2: tous les messages sont de type ct-futur; A3: tous les messages sont de type marqueur. Lalgorithme de base d Chandy et Lamport [7], expos dans la partie 3, suppose que tous les canaux sont fifos. A loppos, les deux algorithmes de Lai et Yang [11] et de Mattern [13], qui font lobjet de la partie 4, ne ncessitent aucune hypothse particulire, cest dire fournissent une solution lorsque tous les messages sont ordinaires. Les solutions dues Ahuja [3] utilisent diffrents types de messages sur un mme canal.

2.3.2 Hypothses globales sur les communications

Les contraintes prcdentes sont relatives un canal donn. La proprit dordre causal porte sur lensemble des canaux. On dit que lensemble des messages du systme satisfait la proprit dordre causal [6,14,15,18] si:
P i ,P j ,P k , m

mis sur cij, m 1 mis sur ckj:

missioni(m) missionk(m1) rceptionj(m) rceptionj(m1) La figure 6 illustre un flot de messages qui ne respecte pas lordre causal (m1 devrait tre dlivr aprs m pour avoir un tel ordre). On peut remarquer que si la proprit dordre causal est garantie alors chaque canal a un comportement fifo. Par contre, le fait que chaque canal soit fifo nimplique pas lordre causal sur lensemble des messages.
m Pi Pj Pk m2

m1

Figure 6. Rception non causale. Lordre causal dfinissant un ordre sur les rceptions de messages strictement plus fort que celui impos par des canaux fifos, on peut sattendre avoir des solutions plus simples que celle de Chandy et Lamport lorsque le rseau de communication garantit cette proprit [17]. La partie 5 prsente les algorithmes dAcharya et Badrinath [1] et dAlagar et Venkatesan [4], qui supposent quune telle proprit est ralise. Des protocoles qui implmentent cette proprit sont dcrits dans [6,14,15,18].

2.4 Superposition
A chaque processus Pi est associ un processus observateur CTLi; ce processus peut lire ltat de Pi. La rception dun message par Pi est ralise par CTLi, qui le dlivre ensuite Pi; de mme, Pi confie CTLi les messages quil veut transmettre vers tout autre processus Pj; CTLi se charge alors de son mission vers CTLj (qui le dlivre ensuite Pj). Les processus CTLi sont chargs de capter un tat global cohrent de lapplication. Ils cooprent entre eux laide de messages de contrle. Un tel schma dobservation des processus Pi par des contrleurs CTLi est appel superposition [8]. Par abus de langage, on confond parfois Pi et son observateur CTLi, lorsque ceci naltre pas la comprhension.

J.M. Hlary, A. Mostefaoui

3 Solution de Chandy et Lamport


3.1 Principe
Larticle de Chandy et Lamport [7] est le premier, historiquement, avoir correctement pos et rsolu le problme du calcul dun tat global cohrent. Il fonctionne sous lhypothse de canaux fifos. Dans ces conditions, ltat dun canal peut tre reprsent par une structure plus riche quun ensemble, savoir une file. Lorsquun message est mis par Pi sur le canal cij, il est dpos en queue de la file ecij. La rception dun message par Pj sur le canal cij correspond au retrait de llment de tte de la file ecij. Autrement dit, lensemble des messages envoys sur le canal cij est totalement ordonn par la relation m1<m2 mission(m1) mission(m2) rception(m1) rception(m2). Ainsi, tout message m de cet ensemble spare lensemble en deux sous-ensembles disjoints, celui constitu des messages mis avant m, not <m, et celui constitu des messages mis aprs m, not >m. Cette proprit des canaux fifos est utilise dans lalgorithme.
Pi Pj eli mk elj

Figure 7. Echange dun message de contrle mk. Considrons lenregistrement de ltat local eli du processus Pi (figure 7). Seules les missions de messages antrieures cet vnement sont captes dans eli. Donc, pour assurer la cohrence dun couple dtats locaux (eli, elj) (conditions C1 et C2), seules les rceptions de messages mis par Pi avant lenregistrement de eli doivent tre captes dans elj. Pour mettre en oeuvre cette contrainte, le processus Pi met, lorsquil enregistre son tat eli, un message de contrle (appel mk) sur le canal cij. Le processus Pj doit alors enregistrer son tat local elj au plus tard la rception de ce message (mk). En effet, par dfinition <mk={m | missioni(m) capte dans eli} et >mk={m | missioni(m) non capte dans eli} De plus, elj tant enregistr au plus tard la rception du message mk <mk {m | rceptionj(m) capte dans elj} do: {m | rceptionj(m) capte dans elj} {m | missioni(m) capte dans eli}, ce qui assure le respect des conditions C1 et C2.

Cette proprit -vidente- est la base de lalgorithme de Chandy et Lamport qui peut informellement tre dcrit de la manire suivante. Chaque processus Pj enregistre son tat local elj et ltat de ses canaux entrants en observant les deux rgles suivantes: R1: un processus Pj qui capte son tat local envoie sur tous ses canaux de sortie un message de contrle (appel mk) pour signifier ses voisins quil a enregistr son tat local. R2: la rception dun message mk sur un de ses canaux dentre, par exemple cij, un processus Pj peut se trouver dans lune des deux situations suivantes: 1. Pj na pas encore capt son tat local. Il doit alors enregistrer cet tat, selon la rgle R1. Ltat ecij du canal cij est vide car Pj a reu tous les messages mis avant le message mk (les canaux sont fos) et ceux mis aprs le message mk ne font pas partie de ltat global. 2. Pj a dj enregistr son tat local (soit de sa propre initiative, soit suite une rception antrieure dun message mk sur un autre canal dentre). Ltat du canal relativement au couple dtats locaux eli et elj est constitu des messages reus sur ce canal aprs que Pj ait enregistr son tat local et avant quil ne reoive mk (leurs mission est capte dans eli, mais leur rception ne lest pas dans elj). Il est intressant de remarquer que, dans un systme disposant dune horloge physique globale, le problme serait facilement rsolu: il suffirait de dcider dune date d laquelle tous les processus du systme enregistreront leur tat local. Lidentification des messages en transit se ferait aisment en associant chaque message la date de son mission. Ceux qui sont mis avant la date d et reus aprs la date d sont les messages en transit et sont donc enregistrs dans ltat du canal cij par Pj. Dans un systme rparti canaux fifos, les messages mk servent simuler l'occurrence de la dated, et dlimitent sur chaque canal les messages mis avant et aprs cette date. Une description formelle de lalgorithme, emprunte [16], est donne dans la partie 3.2 ci-dessous.

10

J.M. Hlary, A. Moste-

3.2 Description formelle


Chaque processus Pj du calcul observ est dot de kj canaux dentre et de lj canaux de sortie; il est ainsi pourvu des dclarations suivantes: c_inj : [1..kj] canaux dentre; c_outj : [1..lj] canaux de sortie lobservateur CTLj associ ce processus Pj, ncessaire au calcul de ltat global, a accs ces canaux et est de plus dot des variables suivantes: elj : tat local; ecj : [1..kj] files de messages; reuj : [1..kj] boolens initialiss faux; enreg_tatj : boolen initialis faux elj et ecj[x] vont servir mmoriser respectivement ltat local et ltat du canal c_inj[x]; le boolen reuj[x] sert de drapeau qui passe vrai lorsquun message mk est reu sur le canal c_inj[x]; enfin enreg_tatj sert indiquer que le processus Pj a enregistr son tat local. La procdure suivante est excute par CTLj lorsque ltat local de Pj est capt. procdure capter_tat_local dbut elj := tat local du processus Pj; enreg_tatj := vrai; x : 1 x k j : ec j [ x ] := ; y : 1 y l j : envoyer mk sur c_outj[y] fin La procdure fini est excute par CTLj lorsque la participation de Pj ltat global est calcule: il a alors calcul son tat local et celui de tous ses canaux entrants. procdure fini dbut si x : 1 x k j : reuj[x] alors %la participation de Pj est calcule stocker (elj, ecj[1..kj]) chez le processus prvu cet effet fsi fin Le comportement de CTLj est exprim par les deux noncs suivants. Le premier nonc est excut par un nombre quelconque de processus, au moins un, au plus n.

11

lors de la dcision locale de calculer un tat global dbut si non enreg_tatj alors capter_tat_local fsi fin lors de la rception de m sur c_inj[x] dbut si m=mk alors si non enreg_tatj alors capter_tat_local fsi; reuj[x]:=vrai; fini; sinon si enreg_tatj et non reuj[x] alors ecj[x]:=ecj[x]m %ajout de m en queue de ecj[x]% fsi; dlivrer m au processus Pj du calcul observ fsi fin

4 Solutions pour les canaux non fifos


Dans le problme qui nous intresse, il est essentiel dexiger dun algorithme dobservation que son excution ait aussi peu dinfluence que possible sur lordre de rception des messages de lexcution observe [19]. Lutilisation de messages de contrle, telle quelle est prvue dans lalgorithme prcdent, est lgante puisquelle permet de sparer lensemble des messages mis avant lenregistrement de ltat local du processus metteur de lensemble de ceux mis aprs (si les canaux ntaient pas fifos, les messages mk seraient en fait des marqueurs). Si les canaux ne sont plus supposs fifos, la dlimitation ne peut plus se faire aussi facilement sans perturber lordre des messages. Cest pourquoi dautres techniques, nutilisant pas de messages de contrle explicites, ont t dabord proposes: la partie 4.1, ci-aprs, examine deux solutions (Lai et Yang [11], Mattern[13]). Cependant, plus rcemment, Ahuja [3] a donn une solution utilisant des messages de contrle, ayant la simplicit de la solution de Chandy et Lamport tout en respectant la contrainte de non perturbation (partie 4.2).

12

J.M. Hlary, A. Moste-

4.1 Solutions sans messages de contrle explicite


4.1.1 Mthode cumulative (mais rapide) de Lai et Yang
Cet algorithme [11] est bas sur lutilisation de deux couleurs, symbolisant, pour les processus, lavant (vert) et laprs (rouge) enregistrement de ltat local et, pour les messages, la couleur de leur metteur. Chaque processus obit aux rgles suivantes: R1: Un processus qui na pas encore enregistr son tat est color en vert, et tous les messages quil met sont colors en vert. R2: Lorsquun processus enregistre son tat local, il devient rouge et tous les messages quil met ensuite sont colors en rouge. R3: Un processus vert peut tout instant enregistrer son tat local, et au plus tard lorsquil reoit un message rouge. R4: Les messages verts mis et reus sur chaque canal sont stocks (aspect cumulatif de lalgorithme). R5: Chaque processus rouge transmet un mme collecteur son tat local et lensemble des messages (verts) quil a stocks. Un tat global cohrent est calcul par le processus collecteur lorsque ce dernier a reu les informations de tous les processus participants; ltat ecij dun canal cij est la diffrence entre lensemble des messages verts mis par Pi, vers Pj, not msg_misi[j], et lensemble des messages verts reus par Pj depuis Pi, not msg_reusj[i]. Il est facile de voir que les deux conditions C1 et C2 sont bien vrifies; soit m un message ayant travers le canal cij. Si lmission de m est capte dans eli, alors m est color en vert (R1) et m msg_misi[j] (R4) si sa rception est capte dans elj, alors m msg_reusj[i] (R4) et donc si sa rception nest pas capte dans elj, alors m msg_misi[j] (R4) et donc m ec ij ceci assure la condition C1. Si lmission de m nest pas capte dans eli, alors m est color en rouge (R2). Lorsque m est reu par Pj, ce dernier processus a dj enregistr son tat local, ou doit le faire sans prendre en compte m (R3). Donc la rception de m nest pas capte dans elj. Ceci assure la condition C2.
m ec ij

Par rapport lalgorithme de Chandy et Lamport, aucun message de contrle (supplmentaire) nest ncessaire. Par contre, le processus observateur CTLi doit observer les envois et rceptions de messages effectus par Pi de

13

manire continue (ce qui ntait pas le cas dans les algorithmes adapts aux canaux fifos), et le volume dinformation stocker pour chaque processus est important (messages verts). Ce dernier inconvnient (aspect cumulatif) disparat dans lalgorithme de Mattern [13] qui utilise des compteurs et des messages supplmentaires pour viter le stockage des ensembles de messages; ceci est obtenu au prix dun plus grand dlai avant lobtention de ltat global rsultat.

4.1.2 Mthode non cumulative (mais lente) de Mattern


Lalgorithme [13] est fond sur la proprit suivante: les messages en transit sur un canal cij sont exactement les messages verts mis par Pi (capts dans eli), et reus par le processus rouge Pj (non capts dans elj). Le processus Pj sait que les messages verts quil a reus aprs son enregistrement dtat local sont les messages en transit sur ce canal. Par contre, il ne peut pas savoir si tous les messages verts qui lui sont destins lui sont parvenus, puisquun message rouge peut doubler un message vert. Lutilisation de compteurs locaux, combins globalement par un processus collecteur, permet de rsoudre ce problme. Supposons que chaque processus Pi enregistre, avec son tat local, la diffrence di entre le nombre de messages quil a mis avant lenregistrement de son tat local (messages verts mis) et le nombre de messages verts reus avant lenregistrement de son tat local. Il est facile de voir que le nombre mt = d i est exactement le nombre total de messages en transit relativement ltat global (el1,..., eln) enregistr. De ces deux proprits dcoule lalgorithme. La rgle de coloration des processus et des messages, ainsi que les rgles R1 R3 sont identiques celles de lalgorithme de Lai et Yang. Les rgles R4 et R5 sont remplaces par les suivantes: R4: Chaque processus Pi compte la diffrence di entre le nombre de messages verts quil a mis et le nombre de messages verts quil a reus. R5: Chaque processus rouge transmet au collecteur son tat local et la valeur de son compteur di. R6: Un processus rouge transmet au collecteur les messages verts quil reoit. Un tat global cohrent est calcul par le processus collecteur de la manire suivante: dans un premier temps, lorsque le collecteur a reu les informations de tous les processus participants, il initialise un compteur mt la valeur di .

14

J.M. Hlary, A. Moste-

ensuite, chaque message retransmis au collecteur par un des processus participants (messages en transit, cf. R 6) est ajout ltat du canal correspondant, et provoque le dcrment du compteur mt. lorsque mt=0 le collecteur conclue quil a obtenu ltat de tous les canaux.

Par rapport lalgorithme de Lai et Yang, il y a un nombre de messages supplmentaires gal au nombre de messages en transit (donc a priori fini mais non born), et de plus, il faut attendre que tous les messages en transit soient reus pour connatre ltat global (cest en ce sens que cet algorithme est plus lent que celui de Lai et Yang). Remarque: lalgorithme de Chandy et Lamport peut, lui aussi, tre exprim laide des couleurs (Dijktsra [9]): il se rduit alors aux rgles R1, R2 et R3 des deux algorithmes prcdents, compltes par la rgle R4: les messages en transit sur le canal cij sont les messages verts reus par le processus rouge Pj. Le premier message rouge traversant le canal cij joue le rle de message de contrle (marqueur) de lalgorithme de Chandy et Lamport.

4.2 Solutions utilisant des messages de contrle


Pour que lalgorithme de Chandy et Lamport soit correct, il nest en fait pas ncessaire que les canaux soient fifos; la proprit essentielle concerne les messages de contrle qui, eux, doivent tre du type marqueur afin de jouer le rle de sparateur. La figure 8 illustre ce phnomne: les messages m et m1 se doublent. Lintroduction dun marqueur mis entre les deux ne peut se faire sans provoquer une perturbation dans lordre de rception de m et m1.
m m1 m m1

Sans marqueur

Avec un marqueur

Figure 8. Perturbation due au marqueur. Il est clair que le rajout de messages de contrle de type ct-futur ou ctpass peut tre effectu sans modifier lordre de rception des autres messages du systme (figure 9).
m1 m m m1

Avec un message ct-pass

Avec un message ct-futur

Figure 9. Pas de perturbation.

15

Avec un message ct-futur, la rception de m1 peut ventuellement tre retarde: missioni(m) missioni(ct-futur) missioni(m1) et rceptionj(ct-futur) rceptionj(m1) rceptionj(m) Lalgorithme dAhuja [3] est informellement dcrit de la manire suivante. Chaque processus Pj enregistre son tat local elj et ltat de ses canaux entrants en observant les rgles R1 R4 suivantes: i) Rgles de coordination des enregistrements dtats locaux: R1: Un processus Pj qui enregistre son tat local envoie sur tous ses canaux de sortie un message enreg_tat_local, de type ct-futur, avant denvoyer tout autre message. R2: A la rception dun message enreg_tat_local sur un de ses canaux dentre, le processus Pj enregistre son tat local selon la rgle R1, sil ne la pas dj fait. Ces deux rgles permettent de capter un ensemble dtats locaux cohrents (condition C2). Si le message m, traversant le canal cij, est tel que missioni(m) nest pas capt dans eli, alors m est mis aprs le message enreg_tat_local sur le canal cij; m est donc reu aprs ce message de contrle, et donc rceptionj(m) nest pas capt dans elj. ii) Rgles pour le calcul de ltat des canaux: les messages du systme observ sont estampills avec des numros de squence: le message du canal cij estampill t, est le (t+1)ieme message envoy sur ce mme canal. R3: Un processus Pj qui enregistre son tat local envoie, sur tous ses canaux de sortie, aprs le message enreg_tat_local et avant denvoyer tout autre message, un message enreg_tat_canal de type ct-pass, avec le mme numro que le dernier message mis. R4: A la rception dun message enreg_tat_canal, numrot t, sur un canal dentre cij, le processus Pj enregistre ecij comme tant lensemble des messages de numro infrieur ou gal t, reus aprs lenregistrement de ltat local elj. Ces deux rgles permettent bien de capter ltat des canaux (condition C1). En effet, soit un message traversant le canal cij, en transit relativement aux tats locaux eli et elj. Puisque missioni(m) est capte dans eli, le numro de ce message est infrieur ou gal t. Puisque rceptionj(m) nest pas capt dans elj, m est reu par Pj aprs lenregistrement de son tat local. Enfin, puisque le message enreg_tat_canal est de type ct-pass, il ne peut pas dou-

16

J.M. Hlary, A. Moste-

bler. Donc: missioni(m) missioni(enreg_tat_canal) rceptionj(m) rceptionj(enreg_tat_canal) Daprs la rgle R4, m est bien enregistr dans ecij. Rciproquement, si m est enregistr dans ecij, il est reu par Pj aprs lenregistrement de ltat local elj et, puisquil est de numro infrieur ou gal t, il a t mis par Pi avant lenregistrement de ltat local eli. Cest donc bien un message en transit relativement aux tats locaux eli et elj. Cette solution, qui reste fidle lesprit de Chandy et Lamport, ncessite un nombre de messages de contrle double, ainsi que la numrotation des messages. Mais elle vite un inconvnient inhrent aux algorithmes de Lai et Yang et de Mattern, savoir la ncessit de transmettre toutes les informations ncessaires au calcul de ltat global un processus coordinateur. Par rapport ces deux algorithmes, la solution dAhuja conserve la caractre dcentralis rencontr chez Chandy et Lamport.

5 Solutions fondes sur lordre causal


On suppose maintenant que le rseau de communication sur lequel sexcute le programme observ, garantit lordre causal dfini dans la partie 2. Des protocoles de communication permettant dinplmenter cette contrainte sont dcrits dans [6,14,15,18]: les structures de donnes utilises par de tels protocoles peuvent tre utilises (en lecture) par les protocoles de capture dtat global (voir en 5.2.1). Ci-dessous sont prsents deux algorithmes tirant profit de cette hypothse sur les communications, qui, tous deux, amliorent lalgorithme de Chandy et Lamport, en ce sens quils ne ncessitent pas de messages de contrle supplmentaires sur tous les canaux mais seulement dun processus vers tous les autres. Les deux algorithmes ont en commun les rgles relatives lenvoi et la rception des messages de contrle, permettant de coordonner lenregistrement des tats locaux. Ils diffrent dans la manire de calculer ltat des canaux: calcul centralis, dans le cas du premier algorithme, dcentralis dans le cas du second. Dans lexpos qui suit, un seul processus joue le rle dinitiateur (cette restriction peut toutefois tre partiellement leve dans le cas du second algorithme).

17

5.1 Calcul des tats locaux


R1: Linitiateur Pinit diffuse tous les autres (y compris lui mme) un message de contrle enreg_tat_local. R2: Lorsquun processus Pi reoit ce message de contrle, il enregistre son tat local eli. Ces deux rgles assurent que lensemble des tats locaux enregistrs est cohrent (condition C2). En effet, considrons un message m envoy sur le canal cij, tel que lvnement missioni(m) nest pas capt dans eli. Il a donc t mis par Pi aprs que ce dernier ait reu le message de contrle enreg_tat_local, donc: missioninit(enreg_tat_local) rceptioni(enreg_tat_local) missioni(m) si sa rception tait capte dans elj, on aurait: rceptionj(m) rceptionj(enreg_tat_local) et lhypothse dordre causal serait viole.

5.2 Calcul de ltat des canaux


5.2.1 Mthode centralise dAcharya et Badrinath
Dans cet algorithme [1], chaque processus Pi gre deux tableaux senti[1..n] et recdi[1..n] qui servent compter les messages mis et reus par Pi: senti[j]= Pi a envoy messages Pj recdi[j]= Pi a reu messages de Pj Les deux tableaux tant dj utiliss dans la plupart des protocoles qui ralisent lordre causal [15], leur utilisation par le protocole dcrit nest pas pnalisante. La rgle R2 est complte de la manire suivante: R 2: Lorsquun processus Pi reoit le message enreg_tat_local, il enregistre son tat local eli, et les deux tableaux senti et recdi, puis envoie linitiateur le message tat_local(eli, senti, recdi). La rgle suivante est observe par linitiateur: R3: Lorsque Pinit a reu tous les messages tat_local, il possde tous les tats locaux eli et calcule ltat des canaux de la manire suivante: cinit,j := j cij := {recdj[i]+1,...,senti[j]} (ce sont tous les numros de i init , j : messages que Pi a envoys Pj et que Pj na pas encore reu de Pi).

18

J.M. Hlary, A. Moste-

Ltat des canaux ainsi calcul est correct. En, effet, soit m le tieme message mis par Pi vers Pj; cest aussi le time messages qui est -ou sera- reu par Pj depuis Pi (ordre causal):
m c ij

rceptionj(m) non capte dans elj et missioni(m) capte dans eli m en transit relativement aux tats locaux eli et elj.

recd j [ i ] < t sent i [ j ]

5.2.2 Mthode rpartie dAlagar et Venkatesan


Dans cet algorithme [4], et contrairement au prcdent, chaque processus est charg du calcul de ltat de ses canaux entrants, comme dans les algorithmes de Chandy et Lamport ou dAhuja. Pour cela, une technique de coloration des messages est utilise, mais au lieu de colorer les messages -en vert ou en rouge- au moment de leur mission (ce qui oblige les messages transporter cette couleur), la coloration est effectue au moment de la rception: lorsquun processus Pj reoit un message m mis pas Pi, ce dernier message est color en rouge si, et seulement si: missioninit(enreg_tat_local) missioni(m) Les structures de donnes, maintenues par les protocoles qui implmentent lordre causal permettent au processus rcepteur Pj deffectuer ce test (voir [4] pour les dtails du test). Lalgorithme est alors dcrit par les rgles ci-dessous. La rgle R1 est inchange; la rgle R2 est complte de la manire suivante: R2: Lorsquun processus Pi reoit le message enreg_tat_local, il enregistre son tat local eli, initialise ltat des canaux entrants vide, et rpond linitiateur avec un message fait. La rgle suivante est applique tout processus: R3: Lorsque, aprs avoir enregistr son tat local, Pj reoit un message de lapplication sur cij, il teste si ce message est rouge. Sil ne lest pas, il le met dans lensemble ecij. La fin de lalgorithme denregistrement dcoule des rgles suivantes: R4: Lorsque linitiateur a reu un message fait de tous les autres processus, il diffuse un message termin. R5: Lorsquun processus Pi reoit un message termin de linitiateur, il termine lenregistrement des canaux.

19

Ltat des canaux ainsi enregistr est correct. En effet, soit m un message traversant le canal cij, en transit par rapport aux tats locaux eli et elj. On a: missioni(m) rceptioni(enreg_tat_local) (m capt dans eli) rceptioni(enreg_tat_local) missioni(fait) (rgle R2) missioni(fait) rceptioninit(fait) (dfinition de la relation ) rceptioninit(fait) missioninit(termin) (rgle R4) do: missioni(m) missioninit(termin) (transitivit de la relation ). Daprs lordre causal: rceptionj(m) rceptionj(termin). Dautre part, rceptionj(enreg_tat_local) rceptionj(m) (m non capt dans elj). Enfin, m nest pas color en rouge puisque missioni(m) est capt dans eli. Le message m est donc bien enregistr dans ecij (rgles R3 et R5). Rciproquement, si m est enregistr dans ecij, on a: rceptionj(enreg_tat_local) rceptionj(m) rceptionj(termin), et m nest pas color en rouge. Donc (1) rceptionj(m) nest pas capt dans elj (2) missioni(m) est capt dans eli

6 Conclusion
Le calcul dun tat global est un paradigme (au mme titre que lexclusion mutuelle) des problmes de contrle rencontrs dans les systmes rpartis. Aprs avoir pos le problme, cette synthse a prsent des algorithmes types qui permettent dobtenir des tats globaux cohrents. Chacun deux correspond un contexte et des hypothses particulires sur les communications (canaux fifos, messages de contrle particuliers, ordre causal). La connaissance de ces hypothses et des solutions associes constitue un lment important pour qui veut matriser la difficult des calculs et des systmes rpartis.

Bibliographie
[1] A. Acharya and B.R. Badrinath, Recording Distributed Snapshots Based on Causal Order of Message Delivery. Inf. Proc. Letters, Vol. 44, (1992), pp. 317-321.

20

J.M. Hlary, A. Moste-

[2] [3]

M. Ahuja, Flush Primitives for Asynchronous Distributed Systems. Inf. Proc. Letters, Vol. 34,2, (1990), pp. 5-12. M. Ahuja, Global Snapshots for Asynchronous Distributed Systems with NonFIFO Channels. Tech, Rep. #CS92-268, Univ. of California, San Diego, (Nov. 1992), 7 p. S. Alagar and S. Venkatesan, An Optimal Algorithm for Distributed Snapshots with Causal Message Ordering. Tech, Rep., Univ. of Texas, Dallas, Texas, (1993), 7p. O. Babaoglu and K. Marzullo, Consistent Global States of Distributed Systems: Fondamental Concepts and Mechanisms. In S.J. Mullender, Editor, Distributed Systems, Chap. 4, ACM Press, 1993. K. Birman and T.A. Joseph Reliable Communication in the Presence of Failures. ACM TDCS, Vol. 5,1, (Feb. 1987), pp. 47-76. K.M. Chandy and L. Lamport, Distributed Snapshots: Determining Global States of Distributed Systems. ACM TOCS, Vol. 3,1,(1985), pp. 63-75. K.M. Chandy and J. Misra. Parallel Program Design: a Foundation. AddisonWesley, (1988), 516 p. E.W. Dijkstra, The Distributed Snapshot of K.M. Chandy and L. Lamport. Tech, Rep. EWD864a, Univ. of Texas, Austin, Tex., (1984).

[4]

[5]

[6] [7] [8] [9]

[10] J.-M. Hlary, Observing Global States of Asynchronous Distributed Applications. Proc. Workshop on Dist. Alg., Springer Verlag, LNCS 392, (1989), pp. 124-135. [11] T.H. Lai and T.H. Yang, On Distributed Snapshots. Inf. Proc. Letters, Vol. 25, (1987), pp. 153-158. [12] L. Lamport, Time, Clocks and the Ordering of Events in a Distributed System. Comm. ACM, Vol. 21,7, (july 1978), pp. 558-565. [13] F. Mattern, Virtual Time and Global States of Distributed Systems. Proc. of Int. Workshop on Parallel and Dist. Systems, North-Holland, 1988, pp. 215226. [14] L.L. Peterson, N.C. Bucholz and R. Schlichting, Preserving and Using Context Information in Interprocess Communication. ACM TOCS, Vol. 7,3, (1989), pp. 213-246. [15] M. Raynal, A. Schiper and S. Toueg, The Causal Order Abstraction and a Simple Way to Implement it. Inf. Proc. Letters, Vol. 39, (1991), pp. 343-350. [16] M. Raynal, Synchronisation et tat global dans les systmes rpartis. Eyrolles, Collection EDF, (1992), 230 p.

21

[17] A. Sandoz and A. Schiper, A Characterization of Consistent Distributed Snapshot Using Causal Order. Tech. Report RR 92-14, EPLF, Lausanne, (Oct. 1992), 9 p. [18] A. Schiper, A. Sandoz and J. Eggli, A New Algorithm to Implement Causal Ordering. Proc. Workshop on Dist. Alg., Springer Verlag, LNCS 392, (1989), pp. 219-232. [19] K. Taylor. The Role of Inhibition in Asynchronous Consistent Cut Protocols. Proc. Workshop on Dist. Alg., Springer Verlag, LNCS 392, (1989), pp. 280291.