Académique Documents
Professionnel Documents
Culture Documents
00 Synchro
00 Synchro
O
mesures
base de donnes
messagerie
schma d'une plate-forme de conduite informatise : acteur SCADA sur chaque site
P1
P2
P3
P4
C. Kaiser
ORDRES, TAT GLOBAL, HORLOGES, SYNCHRONISATION, CONTRLE ET REPRISE DANS LES SYSTMES RPARTIS 1. Besoin des applications rparties Rel et modles de communication lmentaire Dpendance causale Modles de diffusion fiable et communication de groupe Proprits d'ordre dans les groupes 2. Etat global d'un systme rparti Pass et coupures cohrentes Dtermination d'un tat global cohrent 3. Datation causale et horloges vectorielles Horloges vectorielles et coupures cohrentes Diffusion fiable avec ordre causal 4. Ordre total par horloges logiques Exclusion mutuelle rpartie, avec horloge logique 5. Pose de points de reprise rpartis Chemins en zigzag Sauvegarde adaptative 6. tude de cas : calcul coopratif et objet rpliqu sur 4 site 7 Exercices avec solutions Bibliographie :
R.Balter, J.P.Bantre, S.Krakowiak, diteurs. Construction des systmes d'exploitation rpartis. Collection didactique INRIA 1991 (350 pages) G.Coulouris, J.Dollimore, T.Kindberg. Distributed Sytems (2nd edition). Addison Wesley 1995 (601 pages) S.Mullender. Distributed Sytems (2nd ed.). Addison Wesley 1994 (644 p.) A.Tanenbaum. Distributed Operating Sytems. Prentice Hall 1995 (614 p.) J.Besancenot et al. Les systmes transactionnels. Herms 1997 (415 p.) G.Blair, J.B.Stfani. Open Distributed Processing and Multimedia. Addison Wesley 1998 (452 p.)
C. Kaiser Synchronisation rpartie : concepts de base
>
transactions applicatives de conduite O plateforme O O
>
>
O O
acquisition
>
>
relais O O O lire crire propager BD temps rel objets et listes d'abonns O O envoyer recevoir PTT arrivage partance O attendre O poster RESEAU
>
>
CHAQUE SITE SCADA COMPREND UNE PLATE-FORME AVEC: des modules d'acquisition : captures concurrentes, acquisition synthtique des bases de donnes temps rel : lecteurs rdacteurs en mmoire centrale une messagerie : producteurs consommateurs un module rseau : communication de messages intersites des processus de service UNE COUCHE APPLICATIVE AVEC : des processus appels transactions applicatives
C. Kaiser 1.1 Synchronisation rpartie : concepts de base
accs local ou distant aux BD TR, chaque BD cohrente individuellement abonnement BD primaire: copies secondaires pour lecture, sur autres sites transactions avec accs une seule BD primaire la fois messagerie entre les processus de divers sites
Copies multiples d'une mme BD avec critures sur chaque copie : cohrence faible ou forte (problme des caches multiples)
Ensemble de transactions cooprantes. Problmes de synchronisation : dmarrage dans un tat cohrent coordination par un site fixe, mais si absent (panne, maintenance) alors lection d'un nouveau coordinateur terminaison de la coopration mise au point rpartie points de reprise cohrents diffusion d'information dans un groupe
Diffusion fiable et ordonne un groupe de processus sur des sites divers Mobilit des sites
C. Kaiser 1.2 Synchronisation rpartie : concepts de base
client
S S
g service distribu
C. Kaiser
1.3
acteur de calculs
acteur procd
acteur produits
acteur procd
rseau local acteur rseau acteur archivage acteur stocks acteur procd postes oprateurs pour prsentation synoptique une architecture rpartie pour le temps rel
ordinateur personnel station de travail rseau local passerelle rseaux gnraux serveur de fichiers serveur d'impression
C. Kaiser
1.4
d'une mission l'autre perte sur des rcepteurs diffrents pas le mme ordre sur tous les sites pour une suite de rceptions pas de perception unique de l'ordre d'mission si metteurs diffrents dures de transfert variable incertitudes sur l'tat du canal, de l'metteur et des rcepteurs incertitude sur la composition du groupe
C. Kaiser 1.5 Synchronisation rpartie : concepts de base
LES SYSTMES RPARTIS Ensemble fini de sites interconnects par un rseau de communication Pas de mmoire commune Pas d'horloge physique partage par 2 processus ou plus CHAQUE SITE processeur, mmoire locale, mmoire stable (permanence des donnes en dpit de dfaillances du processeur) RSEAU DE COMMUNICATION connexe : tout processus peut communiquer avec tous les autres communication et synchronisation entre processus par messages via le rseau de communication DIFFICULTS CARACTRISTIQUES OBSERVATIONS : deux observations faites sur deux sites distincts peuvent diffrer par l'ordre de perception des vnements par leur date DCISIONS COHRENTES ENTRE PLUSIEURS SITES visions diffrentes de l'tat des ressources du systme pas d'tat global de rfrence en temps rel au moment o il faut prendre des dcisions risque accru de dfaillance (plus de composants) => la dfaillance d'un lment n'est pas un vnement rare => importance des hypothses sur les dfaillances possibles attention, ne pas confondre avec les SYSTMES PARALLLES CENTRALISS encore appels des multiprocesseurs mmoire commune existence d'une mmoire commune (physique, rflexive, virtuelle) existence d'une horloge ou d'un rythme commun
C. Kaiser
1.6
hypothses les plus fortes Tout message arrive avant le dlai d max , qu'il soit point point ou diffus. Communication fiable : pas de perte de message, pas de panne de site Rseau connexe : tout site peut communiquer avec tous les autres parfois rseau isotrope : mme dlai d max pour tous les canaux Les horloges des sites sont aussi synchronises (leur cart est born par dh max ) Les vitesses des processeurs sont suprieures un minorant connu
Exemple : rseaux locaux avec heure reue par radio sur chaque site, rseaux locaux industriels avec synchronisation d'horloge vhicule par le rseau, rseaux locaux avec redondance des bus et des processeurs
Mais cette hypothse, valable avec une certaine probabilit, n'est pas toujours raliste : probabilit trop faible pour l'application, probabilit variable dans le temps (cas des rseaux dont la charge instantane est totalement imprvisible)
C. Kaiser
1.7
Les sites S1, S2,..., Si, ..., SN doivent lire un site coordonnateur Chaque site Si a un identificateur unique uid(i) et peut diffuser un message <lection, i, uid(i))> Tous les sites dmarrent l'lection en mme temps P ( dates fixes, par exemple, lection priodique) Soit T = d max + dh max , Chaque site Si (i) s'attend recevoir un message d'lection partir de P (ii) s'il n'a rien reu au bout de T * uid(i) secondes, mesures sur son horloge, il diffuse son message d'lection. Rsultat : le premier site qui diffuse son message est l'lu Cet algorithme synchrone lit le site de plus petit uid commentaire : simple n'est-il pas? mais l'hypothse synchrone est
hypothses : processeurs et canaux silence sur dfaillance (pas de panne transitoire ou byzantine, mais silence aprs i, ii ou iii) Chaque site Si (i) P, diffuse son uid(i) aux autres sites, lui compris (ii) P + T, il diffuse le min(i) des uid(j) qu'il reoit avant P + T, (iii) P + 2*T, s'il note un consensus des min(j) reus (selon les cas, la majorit, ou l'unanimit des valeurs reues), il lit la valeur de consensus (si l'lu est tomb en panne aprs sa phase i, il faut recommencer)
C. Kaiser
1.8
CHAQUE SITE processeur, mmoire locale, mmoire stable (permanence des donnes en dpit de dfaillances du processeur)
RSEAU DE COMMUNICATION connexe : tout processus peut communiquer avec tous les autres communication et synchronisation entre processus par messages via le rseau de communication
PROPRITS CARACTRISTIQUES Pas de mmoire commune Pas d'horloge physique partage par 2 processus ou plus Absence de majorant connu sur le temps de transfert des messages Absence de minorant connu sur les vitesses des processeurs
Nota : appel aussi modle dlais non borns Exemple : cas de Internet et des rseaux longue distance (WAN)
PROBLME. Un processus Pi ne peut pas savoir si un autre processus Pj est dfaillant ou si la rponse qu'il attend de Pj est en prparation par Pj (processus trs lent) ou encore en route (message trs lent). En pratique, il est essentiel d'introduire une notion de temps (temps rel et non temps du processus Pi) : combien de temps Pi doit-il attendre avant de suspecter Pj de dfaillance suspecter une dfaillance dtecter une dfaillance
C. Kaiser
1.9
Par la nature physique de la communication, l'mission d'un message sur un site prcde ncessairement la rception du message sur le site destinataire. Toute rception d'un message est cause par une mission antrieure. (il ne peut y avoir de rception spontane de message)
Cette relation causale permet d'tablir, dans un systme rparti, une relation d'ordre partiel entre l'vnement d'mission d'un message sur un site et l'vnement de rception du message sur un autre site
m, EMISSION(m)
RECEPTION(m)
RECEPTION(m))
C. Kaiser
1.10
PROPRITS D'ORDRE DES MESSAGES DANS LES CANAUX 1 un message marqueur m ne peut ni doubler ni tre doubl sur C m1, m2, EMISSION(m) EMISSION(m2) RECEPTION(m1) RECEPTION(m) RECEPTION(m) RECEPTION(m2)
EMISSION(m1) EMISSION(m)
2 un message ordinaire m n'impose pas de condition de rception, mais respecte celles des autres (il ne peut doubler les marqueurs et ne peut tre doubl par les marqueurs ). m13
m12 m11
m21 m
m23 m22
Tout marqueur m spare les messages du canal en deux sous-ensembles < m = {m1 | EMISSION(m1) et m est un marqueur > m = {m2 | EMISSION(m) et m est un marqueur EMISSION(m) } RECEPTION(m1) EMISSION(m2) } RECEPTION(m) RECEPTION(m2) RECEPTION(m)
TYPES DE COMPORTEMENT D'UN CANAL 1 le moins contraint : tous les messages sont ordinaires 2 le plus contraint : tous les messages sont des marqueurs (canal FIFO)
C. Kaiser 1.11 Synchronisation rpartie : concepts de base
RELATION DE PRCEDENCE ENTRE DES VNEMENTS RPARTIS vnement : instruction excute par un processeur (prcdence : "happened before", L.Lamport, CACM 21,7, 1978) a) A "prcde" A' si A et A' sont des vnements qui ont t gnrs dans cet ordre sur le mme site S (ordre d'excution local) : A A'
b) A "prcde" A' si A est l'vnement d'mission d'un message M par le site P et que A' est l'vnement de rception du message M sur Q : A (ordre causal pour chaque message) La relation de prcdence dans un systme rparti est la fermeture transitive des deux relations prcdentes. si A B et B C alors A C A'
Une prcdence entre vnements exprime une causalit potentielle : (si A B, A peut avoir influenc B).
e34 e13 e25 e33 e12 e24 e32 e23 e22 e31 e11 e21
Pi,
Pj,
EMISSIONi (m)
EMISSIONk(m1)
Pi
o m
Pj m2 Pk o m1
Premier exemple : la rception sur Pj ne respecte pas la dpendance causale e34 e33
m1 e13 e25 e12 e32 e24 e23 e22 e11
e33
e34
e21
e31
Deuxime exemple : la rception respecte la dpendance causale car les missions e13 et e25 ne sont pas en relation de prcdence
C. Kaiser
1.13
P1 P2
e11
e12
e13
e14
m2 e21
e34
m2 e23 m3 e33
m1
e24
P3
pas de dpendance causale entre EMISSION 1 (m2) EMISSION3 (m3) Donc il n'y a pas de dpendance causale entre m2 et m3 m1 : "Je vais demander P2 de te rencontrer. Appelle le de ma part"
----------------------------------------
P1 P2 P3
e11 e12
e13
e14
m2 e21
m1
e22
m3 e31 e32
e24
EMISSION1(m2)
EMISSION3 (m3)
RECEPTION2 (m2)
RECEPTION2 (m3)
Donc il y a dpendance causale entre m2 et m3 m1 : " J'ai demand P2 de te rencontrer. Fixe lui une date et un lieu"
C. Kaiser
1.14
MODELES DE COMMUNICATION
Communication inclusive ou non (l'metteur reoit le mme message - le sien enrichi par le rseau- que les rcepteurs)
Communication
interne
ou
externe
(l'metteur,
client
du
groupe,
MODE CENTRALISE ("multicast") Un seul metteur (toujours le mme) et n rcepteurs. MODE CENTRALISE A CENTRE MOBILE L'metteur est unique par priodes. MODE MULTI-CENTRE N processus metteurs peuvent tout instant effectuer une diffusion vers P rcepteurs. MODE DECENTRALISE OU MODE CONVERSATION Un ensemble de N sites peuvent tre tout instant metteurs et sont tous destinataires des messages.
C. Kaiser
1.15
Toute suite de diffusions de messages en relation de causalit implique la dlivrance des messages sur tous les sites destinataires dans la mme relation de causalit
Pi,
Pk, m
DIFFUSIONi(m) prcde causalement DIFFUSION k(m1) RECEPTIONj(m) prcde RECEPTIONj(m1) pour tout P j.
C. Kaiser
1.16
Exemple 1: A diffuse un courrier lectronique m C1 et C2 qui contient: "je demande B de vous diffuser du travail par courrier lectronique ". Pour respecter l'ordre causal, C1 et C2 ne doivent pas recevoir le courrier m1 de B avant celui m de A.
mission A (m)
A B C1 C2 m m1 m1 m
mission B(m1)
rception C (m)
rception C (m1)
Exemple 2: A envoie C1 et C2 une commande d'ouverture de vanne, en en rendant compte B. Plus tard B envoie C1 et C2 l'ordre de fermeture de la vanne, en en rendant compte A. Respect de la causalit : le message de A (ouverture) doit tre enregistr avant celui de B (fermeture).
A B C1 C2 fermeture ouverture ouverture fermeture fermeture ouverture
Si plusieurs diffusions ont lieu concurremment de diffrents processus vers le mme groupe de diffusion, alors tous les messages sont dlivrs aux applications rceptrices dans le mme ordre sur tous les rcepteurs. Exemple d'utilisation : copies multiples. Le fait que toutes les oprations de modifications d'un ensemble de donnes en copies multiples soient effectues dans le mme ordre sur toutes les copies suffit assurer le maintien de la cohrence (faible) des copies. DIFFUSION RESPECTANT L'ORDRE TOTAL CAUSAL L'ordre total respecte aussi la relation d'ordre causal entre messages P1 P2 P3 P4
* *
C. Kaiser
1.18
ETAT LOCAL ECij D'UN CANAL Cij ensemble des messages en transit sur le canal Cij mis par Si et non encore reus par Sj
EVENEMENTS (ATOMIQUES) FAISANT EVOLUER LE SYSTEME {ELi} vnement interne sur Si {EL'i} {ELi, ECij} mission de m par Si sur Cij {EL'i, EC'ij = ECij {m}}
{ELi, ECki} rception de m par Si sur Cki {EL'i, EC'ki = ECij - {m}}
ELi,
ECij}
DIFFICULTES ELi n'est immdiatement observable que sur Si ECij n'est jamais directement observable, ni sur Si, ni sur Sj
nota : on dit indiffremment site ou processus (dans ce cas il y a un processus par site)
C. Kaiser
2.1
Seul le pass de e peut avoir influenc e Chane causale : e 0 ... e n tels que e i-1 e i pour tout i (1...n)
aucun des 2 vnements n'appartient au pass de l'autre aucun des 2 vnements ne peut influencer l'autre
e34
e33 e13
e34 e13 e25 e33 e12 e24 e32 e23 e22 e31 e11 e21
pass de e24
Applications dfinition de la cohrence d'un tat, d'une observation mise au point rpartie mesure du paralllisme
C. Kaiser
2.2
COUPURES
soit E un ensemble d'vnements constituant une application rpartie
Photographie instantane d'un systme obtenue en prenant un vnement par site et tous les vnements du site qui le prcde. C'est un sous-ensemble de l'histoire de l'application qui contient toute l'histoire qui le prcde : cela permet de dfinir un pass et un futur (par rapport la coupure)
Frontire F d'une coupure C : ensemble des vnements les plus rcents de la coupure, un par site a F a C et il n'existe pas de b C tel que a b
e12 e13
e34 e13 e25 e33 e12 e24 e32 e23 e22 e31 e11 e21 coupure C
C. Kaiser
2.3
COUPURES COHERENTES
Cohrence = respect de la causalit dans la coupure une chane causale ne peut sortir et re-entrer dans la coupure un message ne peut pas venir du futur en franchissant la frontire
S2 e21 e23 e25 e22 e24 S3 e32 e31 C coupure C cohrente e34 e33 coupure D D incohrente
C. Kaiser
2.4
S2 e21 e23 e25 e22 e24 S3 e31 e34 e33 E coupure E forme par e33 et son pass e32
soit ELi tat local du site Si pour tout i (histoire locale de Si) soit ECij tat local du canal Cij pour tout (i, j)
ELi,
ECij } ELi }
Il en rsulte deux conditions ncessaires pour les messages m qui traversent une frontire de coupure
condition C1 : si EMISSION i (m) soit RECEPTION j(m) ELi alors soit m ECij
ELj,
tout message mis dans le pass est soit reu dans le pass soit en transfert
C. Kaiser
2.6
Si m1 m2 Sj m0 Sk ELj m3
ELi
m4 ELk
tat global {ELi, ELj, ELk} 1 EMISSION k(m3) ELk mais ELj,
donc la condition C1 est vraie seulement si m3 2 EMISSION j(m4) ELj mais RECEPTION k(m4)
ECkj ELk
la condition C2 est fausse car C2 : si EMISSION j(m4) ELj alors RECEPTION k(m4) ELk
C. Kaiser
2.7
Hypothses le rseau de communication est connexe les canaux respectent l'ordre d'mission des messages (canaux FIFO) un site "lu" particulier lance la dtermination d'tat global
Principe association d'un message marqueur chaque enregistrement d'tat local d'un site pour que les autres sites puissent reprer les messages qui sont avant ou aprs cet enregistrement (les messages du pass et du futur) chaque site dtermine son tat local et celui de ses canaux en rception, puis envoie ces tats au site "lu"
Proprits l'algorithme se termine l'tat global enregistr correspond une coupure cohrente les tats enregistrs des canaux sont corrects pour cette coupure
C. Kaiser
2.8
CONTRAINTES DE COHRENCE Quand Si enregistre son tat ELi, toutes les missions de messages faites par Si avant ELi sont captes dans ELi et les rceptions de ces messages doivent tre captes dans les ELj et Cij des sites Sj et celles-l seulement.
MISE EN OEUVRE Ds que Si enregistre ELi, il met un message marqueur mk sur chaque canal Cij. Sj doit enregistrer ELj au plus tard la rception de mk et Sj doit capter tous les messages < mk , soit dans ELj soit dans Cji. Les messages de > mk ne doivent pas tre capts car ils viennent du futur de ELi sur Si.
ALGORITHME SUR CHAQUE SITE Si Dbut (Si "lu") ou premire rception d'un marqueur mk (mis par Sj) (1) enregistrer ELi (2) enregistrer ECji comme vide car Si a dj reu tous les messages < mk et ceux de > mk ne font pas partie de l'tat global. Au dmarrage sur "lu", aucun ECji n'est enregistr. (3) diffuser mk tous ses voisins sur les canaux Cij (1-2-3) doit tre atomique Rceptions suivantes du marqueur mk (mis par Sj) enregistrer ECji comme constitu des messages <mk reus par Si entre l'enregistrement de ELi et l'arrive de mk (envoys par Pj avant ELj mais pas reus par Pi au moment de ELi)
C. Kaiser 2.9 Synchronisation rpartie : concepts de base
S1
m1
* O
mk3 mk1 mk2 mk1 EC12 = {m1} < - - - - - - - - - - - - - - - -> < - - - - - - - - - - - - - - - - - - - - - -> EC32 = {m4) * O m2 m3 mk3 mk2 m4 O
S2
S3
*EC13 =
O : coupure incohrente * : EL1, EL2, EL3
S2 lance la dtermination d'tat global et diffuse mk2 Les 3 vnements mission2(mk2), rception1(mk2) et rception3(mk2) dterminent une coupure incohrente. Les marqueurs mk1 et mk3 permettent : de forcer la transitivit de la causalit et d'avoir une coupure cohrente. de noter dans les ECij les messages qui traversent la coupure cohrente.
S1
mk2 m1
S2
S3
< - - - - - - - - - - - - - - - - - - -> EC12 = {m1} # < - - - - - - - - - - - - - - - - - - - - - - - -> EC32 = {m4) O m2 mk2 m3 mk1 mk3 m4 O # < - -> EC13 = EC23 =
Solution pour un canal FIFO : K.M. Chandy and L.Lamport, Distributed Snapshots : Determining Global States of Distributed Systems. ACM TOCS, Vol 3,1, (1985) pp. 63-75
solutions pour les canaux non FIFO mthode cumulative (et rapide) de Lai et Yang : T.H.Lai and T.H.Yang, On Distributed Snapshots; Inf. Proc. Letters, Vol. 25, (1987), pp. 153-158 mthode non cumulative (mais lente) de Mattern : F.Mattern, Virtual Time and Global States of Distributed Systems. Proc. of Int. Workshop on Parallel and Dist. Systems, North Holland, 1988, pp. 215-226 solution utilisant des messages de contrle : M.Ajuha, Global Snapshots for
Asynchronous Distributed Systems with non FIFO Channels. T e c . R e p . # C S 9 2 - 2 6 8 , U . of Calif., San Diego (1992), 7 p.
solutions fondes sur l'ordre causal mthode centralise d'Acharya et Badrinath : 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 mthode rpartie d'Alagar et Venkatesan : S.Alagar and S.Venkatesan, An Optimal Algorithm for Distributed Snapshots with Causal Message Ordering, Tec. Rep, U . of Texas, Dallas (193), 7 p.
DOCUMENTATION UTILISEE J.M.Helary, A.Mostefaoui, M.Raynal, Dterminer un tat global dans un systme rparti, RR. 2090, INRIA (1993), 21 p.
C. Kaiser 2.11 Synchronisation rpartie : concepts de base
Objectifs :
Reconstruire la squence des messages changs pour faire une analyse post mortem ou pour prparer la rexcution d'une situation analyser. Il faut donc conserver la dpendance causale entre les vnements dpendants et indiquer les vnements causalement indpendants.
On date chaque vnement e du systme avec une mthode de datation causale (l'horloge causale). Soit D(e) la date ainsi fournie. Elle permettra de reconstituer la trace si et seulement si :
a a b
C'est la condition forte des horloges car elle inclut : D(a) < D(b)
Rappel : condition pour que deux vnements a et b soient concurrents, ou encore causalement indpendants : a b non (a b) et non (b a)
C. Kaiser
3.1
les historiques
Rappel : pass d'un vnement e Le pass (ou historique) d'un vnement e, c'est par dfinition : hist(e) = e ensemble des vnements e' tels que e' e
e12 e25
e13
e33
e34
hist(e33) = {e11 e25 e24 e23 e22 e21 e31 e32 e33}
Ide : utiliser le pass de e pour la datation car le pass permet de reprsenter la dpendance causale : a a b (a b a hist(b) hist(a)) hist(b)) et (b
Gros inconvnient : la taille de hist(e) Remde : on observe que, pour dfinir hist(e), un vnement par site suffit.
C. Kaiser
3.2
HORLOGES VECTORIELLES
(Fidge, Mattern 1988)
Projection de hist(e) sur Si : hist i (e) = { a Proprit : e i,k hist i (e) hist(e) a Si }
hist i (e)
Si on indice les vnements de hist i (e) et si un vnement avec un indice k appartient hist i (e), alors tous les vnements d'indice infrieur k font aussi partie de hist i (e). Alors un seul entier suffit pour reprsenter hist i (e), c'est le nombre d'vnements de hist i (e). Comme hist(e) = hist i (e), on reprsente tout hist(e) avec un vecteur V(e) hist i (e) et e i,k+1 hist i (e)
(i. e. connus sur le site de e immdiatement aprs l'occurrence de e) (nombre d'vnements de l'historique de e qui sont localiss sur Si)
C. Kaiser
3.3
REALISATION DES HORLOGES VECTORIELLES On associe une horloge vectorielle V i chaque site Si Initialement Vi = (0,...,0) A chaque vnement dater local Si, on fait V i [i] := V i [i] + 1 Chaque message m porte une estampille Vm (Vm = Vi de l'metteur) A la rception de (m, Vm) par un site Si, on enrichit l'historique connu par Si avec l'historique transport par m : V i [i] := V i [i] + 1 V i [j] := max(V i [j], Vm[j]) pour tous j = 1,...n, j i
(1,1,0,0) S1
(2,1,0,0)
(3,1,0,0)
S2 (0,1,0,0)
(0,2,0,0)
(3,3,0,0)
(3,4,3,1)
S3 (0,0,1,1) (2,1,2,1)
(2,1,3,1) e 33
S4 (0,0,0,1)
(0,0,0,2)
Autre faon de connatre l'"heure" de e 33 : l'histoire de e comprend 2 vnements sur S1 1 vnement sur S2 3 vnements sur S3 1 seul vnement sur S4
C. Kaiser
3.4
Relation d'ordre partiel sur les horloges vectorielles : V V' dfini par : quel que soit i, V[i] V' et V V' V'[i]
Les horloges vectorielles reprsentent exactement la dpendance causale : pour tout a, b a a b b V(a) < V(b) V(a) V(b)
Les horloges vectorielles sont "denses" : Soit ei Si, ej Sj, j, alors il existe ek sur Sk tel que
V(ei)[k] = hist k(ei) = nombre d'vnements de hist(ei) sur Sk V(ej)[k] = hist k(ej) = nombre d'vnements de hist(ei) sur Sk < - - -histk(ej) - - - - -> ek < - histk(ei) - > Sk Si ei Sj ej
C. Kaiser
3.5
S1
(1,1,0,0) (2,1,0,0) D
(3,1,0,0)
e12 e22
(0,1,0,0) (0,2,0,0) (3,3,0,0)
S2
e23
(3,4,3,1)
S3 (0,0,1,1) (2,1,2,1)
(2,1,3,1)
e33
S4 (0,0,0,1)
(0,0,0,2)
V(Z) = (2, 2, 3, 2) = (V(e12)[1], V(e22)[2], V(e33)[3], V(42)[4]) V(D) = (3, 3, 3, 2) (V(e12)[1], V(e23)[2], V(e33)[3], V(42)[4]) = (2, 3, 3, 2) Z est cohrente, D ne l'est pas
Utilisation des horloges vectorielles pour garantir la causalit Si un message arrive trop tt pour la causalit, on le fait attendre
On ne compte que les diffusions : 1) avant diffusion de m, le site Si excute V i [i] := V i [i] + 1 2) estampille de m par Si : Vm = Vi 3) la rception sur Sj de (m, Vm) diffus par Si, on attend que : a) toutes les diffusions prcdentes de Si soient arrives sur Sj soit Vj[i] = Vm[i] - 1
b) toutes les diffusions antrieures m et reues sur Si aient t aussi reues par Sj soit pour tous k i, Vj[k] Vm[k]
4) aprs remise de m, on enregistre l'historique connu grce m soit Vj := max (Vj, Vm)
C. Kaiser
3.7
(0,0,0) (1,0,0)
(1,1,1)
(1,3,1)
S1
S2 ( 0 , 0 , 0 )
(1,3,1)
S3 en en
: V1 = (1,0,0) et Vm = (1,1,1) soit V1[3] = Vm[3] - 1; V1[2] < Vm[2] : V3 = (1,1,1) et Vm = (1,3,1) soit V3[2] Vm[2] - 1 ; V3[1] Vm[1]
C. Kaiser
3.8
S:e
e'
e << e'
e23) e34)
S1 S2 S3
On date chaque vnement e du systme avec une mthode de datation totale (l'horloge logique). Soit H(e) la date ainsi fournie qui est valide ssi: e e' H(e) < H(e')
Nota. H(e) < H(e') non(e' e) C'est la condition faible des horloges car, ou bien e e', ou bien e
e'
C. Kaiser
4.1
e11 e21
1
5
e12
H1
e13
0 1 S2 0 S3
e22
e23
2
4
e24
e25
6 7 H3
H2
e31
e32
e33
e34
donc H(a) = H i (a) et H(b) = H j(b) a << b (H(a) < H(b) ou ( H(a) = H(b) et i < j ) l'ordre total sur les sites est arbitraire (il doit tre le mme partout)
C. Kaiser
4.2
C. Kaiser
4.3
(R) a)]
c'est la condition faible des horloges car H(e) H(e') non(e' e) [(a b) c'est dire : ou bien e
S1 0
(non b
non
e', ou bien e
5
e12
e'
H1
e11
e21
e13
0 1 S2 0 S3
e22
e23
2
4
e24
e25
6 7 H3
H2
e31
e32
e33
e34
a) e11 e33 se traduit en H1(e11) < H3(e33) e e' donne n'importe quoi : e32 e12 donne H3(e32) < H1(e12) e32 e22 donne H3(e32) = H2(e22) e32 e11 donne H3(e32) > H1(e11) b) H(e22) < H(e33) H(e12) < H(e33) non(e33 non(e33 e22) e12) ici ici
e11 << e33 e32 << e12 e32 >> e22 e32 >> e11 e22 e32 e33 e12
c) seule certitude H(e) = H(e') e e' H(e) = H(e') (H(e) H(e')) et (H(e) H(e')) (H(e) H(e')) et (H(e) H(e')) non(e' e) et non(e e e' exemples H(e13) = H(e33) = 6 On a bien e13 e33 H(e22) = H(e32) = 2 . On a bien e22 e32
[par (R)]
CQFD
Les estampilles ne sont pas denses : soit e et e' tels que H(e) < H(e'), on ne peut pas savoir s'il existe e'' tel que e e'' et/ou e'' e' dans l'exemple : H(e22) = 2; H(e32) = 2; H(e33) = 6 H(e22) < H(e33) et il existe e24 tel que e22 e24 et e24 e33 H(e32) < H(e33) et il n'existe pas e'' tel que e e'' et/ou e'' e'
C. Kaiser
4.4
EXCLUSION MUTUELLE REPARTIE (Lamport 1978) Hypothses le nombre N des sites est connu les canaux sont FIFO ordre total ralis par horloge logique Principe : connaissance mutuelle rpartie acquise par chaque site" Demande d'entre d'un site Si en section critique : diffusion de (req, H(req), i) tous les sites, Si compris entre en section critique quand Si sait que: a) tous les sites ont reu sa demande ou qu'ils en ont mis une aussi b) sa demande est la plus ancienne de toutes Rception par Si d'une demande d'entre en section critique de Sj : rponse systmatique par (acq, H(acq), Si) Libration de la section critique par Si : diffusion de (lib, H(lib), Si) tous les sites, Si compris Structure de donnes sur chaque site : tableau de N messages, 1 par site initialement sur Si Mij := (lib, 0, Sj) pour tout j rception de M = (req, H(req), j) ou (lib, H(lib), Sj) => Mij := M rception de M = (acq, H(acq), Sj) => si Mij (req, H(req), j) alors Mij := M
si l'acquittement vient aprs une requte de Sj, on n'oublie pas celle-ci
Rgle de dcision pour chaque site Si : Si entre en section critique quand sa demande Mii << Mij pour tout j En effet, comme les canaux sont FIFO, il n'y a plus de requte plus ancienne en chemin dans un canal Proprits : Si est seul en section critique. Il n'y a pas de coalition car les entres suivent l'ordre total Mais il faut 3(n - 1) messages
C. Kaiser
4.5
S1
1 2 3
S2
1 2
S3
1 2 3 4 3 5 6
5 7 8 9 10 6
10 11 12 11 13
13
H3 M31 LIB,0,1 0 M32 LIB,0,2 M33 LIB,0,3 M31 REQ,2,1 M32 REQ,2,2 M33 LIB,0,3 0 0 5 3 0
2 3 7
3 2 5 11 2 5
11 13 0
S2 entre en SC H2 = 11
C. Kaiser 4.6 Synchronisation rpartie : concepts de base
Hypothses le nombre N des sites est connu les canaux sont quelconques (hypothse FIFO non ncessaire) ordre total ralis par horloge logique
Demande d'entre d'un site Si en section critique : diffusion de (req, H(req), i) tous les sites, Si compris entre en section critique quand tous les sites ont donn leur accord Rception par Si d'une demande d'entre en section critique de Sj : Si n'est ni en section critique ni candidat : accord (acc, H(acc), Si) Si est lui-mme candidat : accord (acc, H(acc), Si) si demande de Sj antrieure sinon mise en attente par Si de la demande de Sj Si est en section critique : mise en attente par Si de la demande de Sj Libration de la section critique par Si : accord (acc, H(acc), Si) toutes les demandes mises en attente par Si
Proprits : Si est seul en section critique. Il n'y a pas de coalition car les entres en S.C. suivent l'ordre total (quit faible car les messages peuvent se doubler) Il faut 2(n - 1) messages
C. Kaiser 4.7 Synchronisation rpartie : concepts de base
S1
a1 : f1 : a1 : f1 : S2 1 2 3
S2
1 2
a2 :
S3
a3 : 1 f3 :
a3 : 3 f3 : S2
4 5 5 a1 : S2 f1 : S2 6 6
3 4
a3 : f3 : S2,S1
7 8 9 a1 : S2,S3 10 f1 : S2 f1 : 11 10 a2 : S3 12 a2 : S3,S1
lgende :
ai : ensemble des ACC reus par le site i fi : ensemble des sites mis en attente par Si
C. Kaiser
4.8
* tolrance aux pannes et reprise arrire (ex. longs calculs scientifiques) * validation en transactionnel (ex. cohrence et prvention d'interblocage)
DEUX OPRATIONS A CONSIDRER sauvegarde des information ncessaires la reprise (points et messages) retour arrire un tat global cohrent et r-excution de l'application TECHNIQUES DE POSE DES POINTS DE REPRISE sauvegarde (pose) priodique indpendamment sur chaque site effet domino sauvegarde cohrente dclenche priodiquement par un site initiateur
(exemple : voir l'algorithme de Chandy, Lamport)
synchronisation explicite coteux en message initiateur quelconque (tolrance aux pannes) sauvegarde adaptative de Xu et Netzer (1993) synchronisation implicite entre sites points de contrle forcs sur un site rcepteur
R f r e n c e : [ X U 9 3 ] J . X U , R. NETZER, Adaptative Independant Checkpointing for Reducing Rollback Propagation, 5th IEEE Symp. on Parallel and Distributed Processing, Dec. 93, Dallas TX, USA, 8 pages, 1993.
C. Kaiser 5.1 Synchronisation rpartie : concepts de base
SAUVEGARDE INDPENDANTE SUR CHAQUE SITE effet domino : le retour arrire d'un site entrane le retour des autres au del du dernier point de reprise et cela parfois jusqu'au dbut du traitement Premier exemple : points pris au hasard r11 r12 x S1 x m1 m4 m3 r21 S2 x m2 r31 S3 x r32 x r33 x r22 x panne
r13 x m5
lgende : x est un point de reprise rij, le jme du site i est l'vnement panne Pour retrouver un point cohrent et repartir aprs rparation (ou avec un processeur en redondance passive sur S2), S2 remonte r22, mais comme l'mission de m5 est perdue, il faut faire remonter S1 r12 ; puis comme l'mission de m4 est perdue, il faut faire remonter S2 r21 ; etc. Aucune coupure r1a, r2b, r3c n'est cohrente sauf la coupure initiale r11, r21, r31. Deuxime exemple : sauvegarde aprs mission de chaque message r11 r12 r13 x x x S1 m1 m5 m4 m3 r21 r22 S2 x x m2 r31 S3 x r32 x panne
MODLISATION
On note -> la dpendance causale On note r p,j le jme point de reprise sur le site S p; Chaque Sp pose un point de reprise initial r p1 au dbut de l'excution. Une ligne de reprise est un ensemble de points de reprise, un par site. Une ligne de reprise R est cohrente si elle forme un tat global cohrent : tout message enregistr reu sur un site a t enregistr mis sur un autre. enregistr<=> fait partie du pass, de la coupure L'intervalle de reprise I p,i est la suite d'vnements entre r p,i et r p,i+1 (il contient r p,i mais pas r p,i+1 )
CHEMINS EN ZIGZAG
Il y a un chemin en zigzag de r p,i r q,j si et seulement si il existe des messages m 1 , m 2 , ...,m n (n 1) tels que (1) m 1 est envoy par le site S p aprs r p,i (2) si m k (1 k<n) est reu par le site S r , alors m k+1 est envoy par S r dans le mme intervalle de reprise ou dans un intervalle postrieur (noter que m k+1 peut tre envoy avant ou aprs l'arrive de m k) , (3) m n est reu par le site S q avant r q,j
CYCLE EN ZIGZAG
Le point de reprise r appartient un cycle en zigzag si et seulement si il y a un chemin en zigzag de r lui-mme.
THORME
Un ensemble R de points de reprise sur diffrents sites peut tre tendu faire partie d'une ligne de reprise cohrente si et seulement si aucun point de reprise de R n'appartient un chemin en zigzag vers un autre point de reprise de R (ou vers lui-mme, formant un cycle en zigzag ). COROLLAIRE : S'il n'y a pas de chemin en zigzag (ni cycle) dans R on peut toujours construire une ligne de reprise cohrente incluant R
C. Kaiser 5.3 Synchronisation rpartie : concepts de base
r12 x m4 r22 x
r13 x m5
panne r33 x
r12 x m4 r22 x
r13 x m5
panne r33 x
cycle en zigzag autour de r22 (messages m5 et m4) cycle en zigzag autour de r32 (messages m3, m1 et m2) cycle en zigzag autour de r12 (messages m4, m2 et m3)
C. Kaiser
5.4
POINTS DE REPRISE UTILISABLE Un point de reprise r p,i est utilisable s'il appartient une ligne de reprise cohrente, c'est dire s'il appartient un tat global cohrent. COROLLAIRE Un point de reprise r p,i est utilisable s'il n'y a pas de cycle en zigzag qui le contienne. PRINCIPE DE LA SAUVEGARDE ADAPTATIVE Empcher les cycles en zigzag de se former et pour cela : dtecter si un message reu sur un site achve de construire un cycle, si c'est le cas, forcer un point de reprise avant la rception du message. MTHODE APPROCHE En fait on ne peut pas dtecter si le cycle est en zigzag. Alors en approximation on dtecte si le chemin est causal. ( l'exprience, il y a trs peu de chemins en zigzag non causaux)
C. Kaiser
5.5
m2
S2 x r21
x r22
S2 x r21
x r22
un cycle en zigzag est dtect sur S1 l'arrive de m2 r11 S1 x m1 r21 S2 x m2 r31 S3 x r32 x m3 r12 x
un point de reprise r13 est forc sur S1 ce qui rend utilisable r13 sur S2 r13 x m5 r22 x
m4
r33 x
V i [j] indique le pass de Si situ sur Sj et tel qu'il est connu par Si indique donc aussi le numro du dernier point de reprise sur Sj qui est en dpendance causale avec le point de reprise courant sur Si. A la cration d'un nouveau point de reprise r i,k sur Si, le site Si sauvegarde dans RVi les dpendances causales de r i,k . Soit RVi = Vi(r i,k ) . A l'envoi d'un message m de Si vers Sj, Si surcharge le message m avec Zid = RVi[j], c'est dire avec le numro du dernier point de reprise sur Sj qui est sur un chemin causal avec r i,k A la rception d'un message (m, Vm, Zid) par Si et avant de traiter le message, l'algorithme regarde s'il existe un cycle causal entre le point de reprise courant sur Si, dat RV i [i] et le point de reprise sur Sj prcdant l'mission. Il y a un cycle causal point de reprise sur Sj prcdant l'mission si RV i [i] = Zid. Puis Vi est mis jour. ALGORITHME : 1 : si Zid = RV i [i] alors forcer un nouveau point de reprise; V i [i] := V i [i] + 1 ; RV i = V i i ; -- historique
C. Kaiser
r11 S1 x
m1,(2,0),0
S2 x r21
un point de reprise r13 est forc sur S1 ce qui rend utilisable r22 sur S2
RV1 = (1,0,0)
RV1 = (2,1,2)
r11 S1 x m1,(1,0,0),0
zid RV2[2] RV2 = (0,1,0) zid
r12 x m3,(0,1,2),0
RV1[1]
RV1 = (3,1,2)
RV1 = (4,3,2)
r13 m4,(2,1,2),1
zid = RV2[2]
r14 x
zid = RV1[1]
m5,(2,3,2),2
S2 x r21 m2,(0,1,0),0
zid RV3[3]
RV2 = (1,2,0)
r22
RV2 = (2,3,2)
x r23
S3 r31 x
r32 x
panne
le cycle en zigzag autour de r32 n'est pas dtect, il n'est pas causal, la reprise arrire remontera r31
C. Kaiser 5.8
un cycle autour de r12 est dtect sur S2, l'arrive de m4,1 on force la prise de r22
Synchronisation rpartie : concepts de base
S2
r31 x RV3=(0,0,1)
S3
V1=(1,1,0)
V1=(1,1,1)
RV1=(2,1,1) x r12
si panne, reprise r13,r22,r32 ou r13,r21,r31
reprise force
RV3=(1,1,2)
V3=(2,1,2)
V1=(2,1,2)
RV1=(3,1,2) x r13
m9,(3,1,2),1 Zid RV2[2] V2=(3,2,2) r23
V2=(3,2,2) m10,(2,2,2),1 Zid RV2[2] X RV2=(3,3,2) m11,(3,3,2),2 Zid=RV3[3] r33 reprise force
RV3=(2,2,3)
V3=(3,3,3)
reprise force
RV1=(4,1,2)
V1=(4,3,2)
S1
S3
C. Kaiser
5.9
Conditions d'exprimentation 6 programmes de tests (de 13 000 370 000 messages changs au total) Hypercube Intel iPSC/860 avec 16 noeuds utiliss pour les tests
Rduction de la propagation arrire pour atteindre une ligne cohrente Avec une sauvegarde priodique dclenche indpendamment sur chaque site, il faut en moyenne faire un retour arrire de 3 4 points de reprise par site pour obtenir une ligne de reprise cohrente. En ajoutant la sauvegarde adaptative, on rduit ce retour arrire un peu moins d'un point de reprise par site.
Surcot pour la sauvegarde adaptative faible en gestion de l'horloge vectorielle et de tests sur les messages nombre de points de reprise additionnels : pose 4% de points de reprise de plus que la sauvegarde priodique indpendante
BILAN
Condition ncessaire et suffisante pour qu'un ensemble de points de reprise soit cohrent : absence de chemins en zigzag entre ces points Mthode heuristique : on recherche les chemins causaux (leur absence est une condition ncessaire) au lieu de rechercher les chemins en zigzag Conclusion : gain obtenu par la rduction de l'effet domino ne pas oublier qu'il faut en plus faire le retour arrire, avoir sauvegard les messages qui franchissent la coupure et rexcuter l'application.
C. Kaiser 5.10 Synchronisation rpartie : concepts de base
RETOUR SUR L'EXEMPLE AVEC UNE AUTRE MTHODE ((RECEPTION)*(MISSON)*SAUVEGARDE) (heuristique de Russell 1980)
S1 x r11
m1
r21 x
S2
S3 x r31
m2 r12 m3 m4 r22
m5
m6 r13 m7 m8 m9 r23
r32
r33
m10
S1
S2
S3
1. Exemple d'excution rpartie modlise par des vnements vnement = excution d'instruction
si,0 Pi m1 Pj sj,0 sj,1 sj,2 si,1 si,2 m2 sj,4 sj,3 m3 Pk sk,0 sk,1 sk,2 sk,3 sj,5 m4 sk,4 si,3 m5 sj,7 sj,6 m6 sk,7 sj,8 m7 m8 sk,8 sj,9 sj,10 si,4 si,5 si,6 si,7
sk,5 sk,6
TUDE DE CAS Objet rparti et rpliqu sur 4 sites S1, S2, S3, S4
(avec mme valeur initiale 100 Keuros) mthodes : ajouter, retrancher, multiplier, lire
ajouter 20 retrancher 10 multiplier la valeur par 110% lire et sauvegarder (ou imprimer ou visualiser) la valeur locale
M1, M2, M3, M4 : messages de mise jour diffuss toutes les copies. Mi : excuter ti sur votre copie locale DSORDRE NATUREL DES COMMUNICATIONS
e11
e12 t1
M1
S1
e21
e13 e14
M3
e15 t2
M2
e16
M4
e23
S2
e31 e32
e24
e22 e33 t3
M1
t4
M4
e26 e36
S3
e41
e34
e35
M2 M4
S4
e42
Les sites visualisent 122, 120, 130, 100. Belle coopration! Les rpliques de l'objet valent 122, 121, 120, 119. Belle cohrence!
C. Kaiser 6.1 Synchronisation rpartie : concepts de base
ORDRE CAUSAL Sk,Mi mis par Si sur C ik , Mj mis par Sj sur C jk , mission i (Mi) mission j(Mj) dlivrance k(Mi) dlivrance k(Mj) ORDRE LOCAL (c'est aussi un ordre causal) Sk, Mi mis par Si sur C ik , Mj mis par Si sur C ik , mission i (Mi) mission i (Mj) dlivrance k(Mi) dlivrance k(Mj) ORDRE TOTAL Mi diffus sur Si et mis sur C ik , j diffus sur Sj et mis sur C jk , Sk, dlivrance k(Mi) ou exclusif Sk, dlivrance k(Mj) dlivrance k(Mj) dlivrance k(Mi) ORDRE TOTAL CAUSAL la prcdence causale est respecte, si elle existe Sk,Mi mis par Si sur C ik , Mj mis par Sj sur C jk , mission i (Mi) mission j(Mj) dlivrance k(Mi) dlivrance k(Mj) si elle n'existe pas, on a un ordre total simple Mi diffus sur Si et mis sur C ik , j diffus sur Sj et mis sur C jk , mission i (Mi) mission j(Mj) Sk, dlivrance k(Mi) ou exclusif Sk, dlivrance k(Mj) dlivrance k(Mj) dlivrance k(Mi)
C. Kaiser
6.2
mission 1 (M2) mission 2 (M4) mission 1 (M2) mission 3 (M3) mission 3 (M3) mission 2 (M4)
QU'EN EST-IL AVEC CE DSORDRE NATUREL DES RCEPTIONS? {100}M1;M3;M2;M4{122}; S1 respecte l'ordre causal et l'ordre local {100}M1;M4;M2;M3{121}; S2 respecte l'ordre local, et pas l'ordre causal {100}M3;M1;M4;M2{120}; S3 respecte l'ordre causal et l'ordre local {100}M4;M2;M3;M1{119}; S4 ne respecte ni l'ordre causal ni l'ordre local Il n'y a pas d'ordre total
D'autres variantes de rception ne sont pas meilleures : {100}M3;M2;M1{120} respecte l'ordre causal et pas l'ordre local {100}M2;M1;M3{121} ne respecte ni l'ordre causal ni l'ordre local QUESTIONS : Comment assurer le respect de l'ordre causal et de l'ordre local? Comment obtenir un ordre total d'mission des messages? Comment obtenir un ordre total d'mission et de dlivrance des messages? (synchronie de vue pour tous les sites) Comment obtenir une visualisation cohrente sans ordre total? Comment prendre un ensemble cohrent de points de reprise Comment installer la tolrance une panne franche d'un processeur
C. Kaiser 6.3 Synchronisation rpartie : concepts de base
(1,0,0,0)
(1,0,1,0) (2,0,1,0) M3
(2,1,1,0) M4
S1
t1
M1
t2
(1,1,0,0)
M2 (1,1,1,0) M2 (2,1,1,0)
S2
(1,0,0,0)
t4
M1
(1,1,0,0) M4 M4 M3
M3
S3
t3
(0,0,1,0)
(1,0,1,0) (1,1,1,0)
S4
Les sites visualisent 120, 122 ou 130. Les rpliques de l'objet valent 122 ou 120.
Problme : Comment obtenir un ordre total d'mission des messages? Rponse : un site squenceur, ou un jeton circulant ou exclusion mutuelle
Comment obtenir un ordre total d'mission et de dlivrance des messages? numroter les diffusions et diffuser le numro dans le message
C. Kaiser
6.4
S1 *
D
*
D
R13
S2
D R11
O * D
t4,12
M2,13
R12
S3
M1,10
t3,11
S4
M4,12
M2,13 M3,11
Cela ne suffit pas. Il faut rordonner les rceptions et les traitements selon l'ordre total fourni par le squenceur
t1,10
M3,11 R13 M4,12
t2,13
S1 *
D R10 M 1 , 1 0
* **
R11 D R12 D
*
t4,12
S2 **
D
* *M3,11
M2,13 M4,12
S3
* 1,10 M
t3,11
M3,11
M4,12
M2,13
S4
M1,10
M2,13
variante : le squenceur reoit le message diffuser et fait la diffusion (voir plus loin la solution avec objet primaire et objets secondaires)
C. Kaiser 6.5 Synchronisation rpartie : concepts de base
t1,10
J11
S1
* *
M1,10 J10
**
M 3 , 1 1 J12
t2,13
M4,12
**
J13 M 2 , 1 3
J12
S2
** * * J10 t3,11
**
t4,12
M3,11
M2,13
S3
** M 1 , 1 0 ** J11 ** J12
M4,12
S4
* J9
M4,12
M2,13 M3,11
jeton squenceur
Cela ne suffit pas (mme si les canaux sont FIFO). Il faut rordonner les rceptions et les traitements selon l'ordre total fourni par le squenceur
J9
t1,10
S1
**
M1,10
M 3 , 1 1 J11
J12
t2,13
M4,12
**
**
t4,12
S2
J10
**
M1,10
** * *
M3,11
J13
M2,13 M4,12
S3
J10
t3,11
J12
** ** J12
M4,12
M2,13
M3,11
S4
* J9
J11
J11
M1,10
M2,13
jeton squenceur
L'ordre total est causal. Peut-on avoir un ordre total non causal si les sites prennent des numros en avance au passage du jeton ?
C. Kaiser 6.6 Synchronisation rpartie : concepts de base
S1 *
4
t1
REQ,16,1 19
15 ACC,12,3 6
t4
26
S2 * 0
M2,23,1
{100}M3;M1;M2;M4{120}
S3
* * 0
REQ,1,3
t3
M4,28,2 M2,23,1
{100}M3;M1;M4;M2{120}
S4
M1,15,1
20
Cela ne suffit pas. Il faut rordonner les rceptions et les dlivrer selon l'ordre total fourni par les estampilles
REQ,3,1 M3,11,3 13
S1 *
4
t1
REQ,16,1 19
15 ACC,12,3 6
t2
23
25
M4,28,2
t4
26
S2 * 0
M2,23,1
S3
* * 0
REQ,1,3
t3
M2,23,1 M4,28,2
S4
20
C. Kaiser
6.7
ORDRE TOTAL DE DIFFUSION DES MESSAGES UN OBJET PRIMAIRE ET DES OBJETS SECONDAIRES
un site serveur primaire (est aussi squenceur) l'ordre total dpend de l'ordre de rception de la demande de service Le primaire diffuse les traitements faire
M1,10 D,t1 M1,10 M3,11 D,t2 M4,12 M2,13
S1 * S2 *
t1,10
*
t3,11
D,t4
t4,12
t2,13
S3
D,t3
M1,10
M3,11
M4,12
M2,13
S4
M1,10 M3,11 M4,12 M2,13
Si les canaux sont FIFO, on a l'ordre total sinon, il faut numroter les messages, comme ici Permet des lectures concurrentes en cohrence faible des objets dupliqus Problme en cas de panne du serveur primaire Plus gnralement : Comment tolrer une panne franche de processeur Comment prendre un ensemble cohrent de points de reprise autres tudes de cas 1. tude de cas avec deux objets rpartis A et B et des traitements coopratifs rpartis. Problmes de cohrence transactionnelle. P1 : A - 20 si A reste positif; P2 : B + 20; P3 : A + 10; P4 : consulter A et B 2. traitements transactionnels rpartis avec 3 objets rpartis P1 : A - 20; B+20; P2 : B-10; A+10 P3 : C := A+B visualiser A, B, C
C. Kaiser 6.8 Synchronisation rpartie : concepts de base