Академический Документы
Профессиональный Документы
Культура Документы
N 2090
Novembre 1993
PROGRAMME 0
Programme 1
apport de recherche
ISSN 0249-6399
1993
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
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-
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
) ecij} (i,j
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).
et
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):
m 1 :
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
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.
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
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.
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
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
12
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.
14
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.
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
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
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.
17
18
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.
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
[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]
[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.