Vous êtes sur la page 1sur 67

Systmes et Applications Rpartis

(cours B4 code 19302)

Systmes et Applications Rpartis


Ordres, tat global, horloges, synchronisation, contrle et reprise dans les systmes rpartis C Kaiser

processus de l'application processus de la plate-forme

O
mesures

O O O envoyer recevoir PTT O attendre O poster RESEAU


accs rseau

base de donnes

messagerie

schma d'une plate-forme de conduite informatise : acteur SCADA sur chaque site

P1

P2

P3

P4

trace de messages entre 4 acteurs

C. Kaiser

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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

Systmes et Applications Rpartis

(cours B4 code 19302)

BESOINS DES APPLICATIONS REPARTIES

>
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

> capteur >

>

capteur O O poser ter MESURES

>

Schma d'un acteur SCADAsur un site d'une application rpartie

APPLICATION REPARTIE = ENSEMBLE DE SITES

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

Systmes et Applications Rpartis

(cours B4 code 19302)

BESOINS DES APPLICATIONS REPARTIES


REPARTITION SIMPLE (CLIENT SERVEUR)

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

REPARTITION PLUS COMPLEXE (APPLICATION COOPRATIVE)

Transactions avec accs embots plusieurs BD : problmes de cohrence globale et interblocage

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

Systmes et Applications Rpartis

(cours B4 code 19302)

BESOINS DES APPLICATIONS REPARTIES

client
S S

serveur requte d'un client

schma client serveur

client gestionnaire g d'objets requte simple


g g

g service distribu

requte transactionnelle gestionnaires cooprants

schma clients et gestionnaires d'objets

C. Kaiser

1.3

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

EXEMPLES D'ARCHITECTURE PHYSIQUE (ARCHITECTURE ORGANIQUE)

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

une architecture distribue simple

C. Kaiser

1.4

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

LE REEL DES COMMUNICATIONS ELEMENTAIRES


POINT A POINT MODE MESSAGE message d'un metteur vers un rcepteur sur un canal perte de message, absence de rcepteur (panne, maintenance,...) contrle d'erreur par acquit et dlais de garde, mais duplication possible numrotation des messages successifs rception dsordonne d'une suite de messages contrle de flux pour asservir les vitesses de l'metteur et du rcepteur (producteur-consommateur) incertitude sur l'tat du canal, de l'metteur et du rcepteur dures de transfert variable, asynchrone (mais il existe des bus synchrones) POINT A POINT MODE CLIENT SERVEUR l'metteur est le client et le rcepteur est le serveur message requte d'un client vers un serveur sur un canal message rponse du serveur au client le client n'envoie pas d'autre requte avant d'avoir reu la rponse mmes problmes d'erreurs, d'incertitudes et de variabilit des dlais DIFFUSION A UN GROUPE Un metteur et N rcepteurs sur le canal exemples : Ethernet, Token ring perte de message pour R rcepteurs avec 0 <= R <= N

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

Systmes et Applications Rpartis

(cours B4 code 19302)

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

LES MODELES DE LA COMMUNICATION ELEMENTAIRE


MODLE DE COMMUNICATION SYNCHRONE FIABLE

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

ELECTION EN COMMUNICATION SYNCHRONE FIABLE

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

restrictive (pas de pannes, horloges communes) la "nature" est asynchrone.

ELECTION EN COMMUNICATION SYNCHRONE NON FIABLE

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

MODLE DE COMMUNICATION ASYNCHRONE

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

MODELE DE COMMUNICATION ASYNCHRONE FIABLE


rseau connexe : tout site peut communiquer avec tous les autres communication fiable : pas de perte de message, pas de panne de site raliste sur une courte dure

PROPRIT DE CAUSALITE ELEMENTAIRE

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

destinataire. cette relation se note (on lit prcde) :

m, EMISSION(m)

RECEPTION(m)

(note "happened before" par Lamport)

Plus exactement la relation est tablie lorsque le message a t reu

m, RECEPTION(m) => (EMISSION(m)

RECEPTION(m))

C. Kaiser

1.10

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

HYPOTHESES PROPRES A UN CANAL C ij


(canal : liaison point point entre un metteur et un rcepteur) DEFINITION : m1 double m2 dans le canal C ij si et seulement si EMISSIONi (m2) et RECEPTION j(m1) EMISSIONi (m1) RECEPTION j(m2)

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

Systmes et Applications Rpartis

(cours B4 code 19302)

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'

La prcdence est un ordre partiel entre les vnements du systme rparti

La causalit entre vnements implique la prcdence entre eux : A cause B A B

Une prcdence entre vnements exprime une causalit potentielle : (si A B, A peut avoir influenc B).

P1 e11 P2 e21 P3 e31


C. Kaiser

e12 e13 e22 e23 e32


1.12

e25 e24 e33 e34

e34 e13 e25 e33 e12 e24 e32 e23 e22 e11 e31 e21

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

DPENDANCE CAUSALE ENTRE MESSAGES


Les messages respectent la dpendance causale si et seulement si :

Pi,

Pj,

Pk, m mis sur Cij,

m1 mis sur Ckj, RECEPTION j(m) RECEPTION j(m1)

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

P1 e11 P2 e21 P3 e31 e22 e23 e32

e12 e13 e25 e24


m

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

DPENDANCE CAUSALE ENTRE MESSAGES Un problme de logique

P1 P2

e11

e12

e13

e14

m2 e21

m1 e22 m3 e31 e32

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

m2 m1 e23 m3 e33 e34 ne respecte pas la causalit entre m3 et m3

m3 e31 e32

e24

respecte la causalit entre m2 et m3

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

MODELES DE DIFFUSION FIABLE ET COMMUNICATION DE GROUPE


Un message mis doit tre reu par n destinataires.

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,

n'appartient pas au groupe)

CLASSIFICATION SELON LES EMETTEURS ET LES RECEPTEURS (classification OSI)

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

PROPRIETES D'ORDRE DANS LES GROUPES


DIFFUSION RESPECTANT L'ORDRE LOCAL Pour deux diffusions successives du mme processus, les messages sont dlivrs dans le mme ordre sur chaque site distant

DIFFUSION RESPECTANT L'ORDRE CAUSAL diffusion + causalit (Birman et Joseph 1987)

Relation de dpendance causale entre les messages, gnralise la diffusion

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

EXEMPLES D'UTILISATION DE LA DIFFUSION CAUSALE

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

DIFFUSION RESPECTANT UN ORDRE TOTAL SIMPLE


C. Kaiser 1.17 Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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

Diffusions multi-centre sans ordre multi-centre ordonne totalement

* *

multi-centre ordonne causalement mais pas totalement

multi-centre ordonne localement mais pas totalement

C. Kaiser

1.18

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

ETAT GLOBAL D'UN SYSTEME REPARTI


ETAT LOCAL ELi D'UN SITE Si tat initial et squence d'vnements locaux sur Si

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}}

ETAT GLOBAL S = { pour tout i, j,

ELi,

ECij}

DIFFICULTES ELi n'est immdiatement observable que sur Si ECij n'est jamais directement observable, ni sur Si, ni sur Sj

OBJECTIF : dfinir un tat global dterminable localement par tout site

REMARQUE : toute dfinition d'tat doit respecter la dpendance causale

nota : on dit indiffremment site ou processus (dans ce cas il y a un processus par site)

C. Kaiser

2.1

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

PASS D'UN VNEMENT


Le pass (ou historique) d'un vnement e, c'est par dfinition : hist(e) = e ensemble des vnements e' tels que e' e

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)

Evnements concurrents (ou encore causalement indpendants) a b non (a b) et non (b a)

aucun des 2 vnements n'appartient au pass de l'autre aucun des 2 vnements ne peut influencer l'autre

S1 e11 S2 e21 S3 e31 e22 e23 e32

e12 e13 e25 e24 e33


e32 e24

e34
e33 e13

e34 e13 e25 e33 e12 e24 e32 e23 e22 e11 e31 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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

COUPURES
soit E un ensemble d'vnements constituant une application rpartie

Coupure = sous-ensemble fini C de E tel que pour a, b a C et (b prcde localement a) (b C)

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

S1 e11 S2 e21 S3 e31 coupure C e22 e23 e32

e12 e13

e25 e24 e33 e34

e34 e13 e25 e33 e12 e24 e32 e23 e22 e11 e31 e21 coupure C

C frontire F ={e11, e25, e32}

C. Kaiser

2.3

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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

Coupure cohrente = coupure ferme par la relation de dpendance causale a C et (b a) (b C)

D S1 e11 C e12 e13

e23 S2 e21 e25 e22 e24 S3 e32 e31 C coupure C cohrente e34 e33 coupure D D incohrente

Etat global cohrent = tat associ une coupure cohrente

C. Kaiser

2.4

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

E S1 e11 e12 e13

e23 S2 e21 e25 e22 e24 S3 e31 e34 e33 E coupure E forme par e33 et son pass e32

Exemple de coupure cohrente : le pass d'un vnement

ETAT GLOBAL COHRENT D'UN SYSTEME REPARTI

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)

tat global S = { pour tout i, j,

ELi,

ECij } ELi }

coupure associe = { pour tout i,

tat global S cohrent si coupure associe cohrente


La frontire de la coupure associe dfinit un pass et un futur
C. Kaiser 2.5 Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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

condition C2 : si EMISSION i (m) ELi alors RECEPTION j(m) ELj

tout message mis dans le futur reste dans le futur

C. Kaiser

2.6

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

UNE EXECUTION REPARTIE

Si m1 m2 Sj m0 Sk ELj m3

ELi

m4 ELk

tat global {ELi, ELj, ELk} 1 EMISSION k(m3) ELk mais ELj,

comme RECEPTION j(m3) il faut que m3 ECkj

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

conclusion {ELi, ELj, ELk} n'est pas un tat global cohrent

C. Kaiser

2.7

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

DETERMINATION D'UN ETAT GLOBAL COHERENT


(Chandy - Lamport 1985)

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

SOLUTION DE CHANDY et LAMPORT (1985)


HYPOTHSE : CANAUX FIFO tout message mk envoy sur un canal FIFO spare les messages du canal en deux sous-ensembles : < mk (avant mk) et > mk (aprs mk).

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

Systmes et Applications Rpartis

(cours B4 code 19302)

EXEMPLE DE DETERMINATION D'UN ETAT COHERENT


EC21 = < - - - - - - - - - - - - - - - - - - > EC31 =

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

< - - - - - - - - > EC23 = {m3}

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

EC21 = EC31 = #< - - - - - - - - - - - - - > O mk3 mk1

S2

S3

< - - - - - - - - - - - - - - - - - - -> EC12 = {m1} # < - - - - - - - - - - - - - - - - - - - - - - - -> EC32 = {m4) O m2 mk2 m3 mk1 mk3 m4 O # < - -> EC13 = EC23 =

autre trace et autre tat cohrent


C. Kaiser 2.10 Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

DETERMINER UN ETAT GLOBAL DANS UN SYSTEME REPARTI lments de bibliographe

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

Systmes et Applications Rpartis

(cours B4 code 19302)

ENREGISTREMENT D'UNE TRACE

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

D(a) < D(b)

non (D(a) < D(b)) et non (D(b) < D(a))

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

UNE METHODE DE DATATION CAUSALE

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

S1 e11 S2 e21 S3 e31 e22 e23 e32 e24

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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 }

pour tout j < k : e i,j

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)

n : V(e)[i] = k tel que e i,k

V(e)[i] = nombre d'vnements de Si "connus de 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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

PROPRIETES DES HORLOGES VECTORIELLES

Relation d'ordre partiel sur les horloges vectorielles : V V' dfini par : quel que soit i, V[i] V' et V V' V'[i]

V < V' dfini par V V

V' dfini par (V < V') et (V' < V)

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

si V(ei)[k] < V(ej)[k], pour k (ek En effet ei) et (ek ej)

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

HORLOGES VECTORIELLES ET COUPURES COHERENTES

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)

e42 coupure Z =(e12,e22,e33,e42) coupure D =(e12,e23,e33,e42)


Date d'une coupure C = (c1,c2,...,cn)
C. Kaiser 3.6

ZD V(Z) = (2,2,3,2) V(D) = (3,3,3,2)

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

V(C) = sup (V(c1),...,V(cn)) soit pour tout i, V(C)[i] = sup (V(c1)[i],...,V(cn)[i])

La coupure est cohrente si et seulement si V(C) = (V(c1)[1],...,V(cn)[n])

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

DIFFUSION AVEC ORDRE CAUSAL (Birman, Schiper, Stephenson 1990)

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

(0,0,0) (1,0,0)

(1,1,1)

(1,1,0) (1,1,1) (1,2,1)

(1,3,1)

S1

S2 ( 0 , 0 , 0 )

(1,1,1) (1,2,1) (1,0,0) (1,1,0)

(1,3,1)

S3 en en

(0,0,0) (1,0,0) (1,1,0) (1,1,1) (1,3,1) (1,2,1) (1,3,1)

: 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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

LINEARISATION DE L'OBSERVATION D'UN SYSTEME


Linarisation de l'observation d'un systme rparti S: "vue" en squence des vnements de S par un observateur interne "vue" en squence des vnements de S par un observateur externe C'est la dfinition d'un ordre total, soit <<, sur les vnements de S Linarisation valide si elle est compatible avec la relation de prcdence causale e, e' Exemple : e11 e21 e31 e22 e23 e32 e24 e25 e12 e33 e13 e34 valide e11 e21 e31 e22 e32 e23 e24 e25 e12 e33 e13 e34 valide (car e32 e11 e21 e31 e22 e23 e32 e24 e25 e12 e33 e34 e13 invalide (car e13
e11 e21 e31 e22 e23 e32 e24 e12 e25 e33 e34 e13

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

REALISATION DES HORLOGES LOGIQUES


(Lamport 1978) Objectif : raliser une datation totale des vnements respectant la dpendance causale dterminable par consultation locale Un compteur entier Hi, initialis 0, est maintenu sur chaque site Si. A chaque vnement e, localis sur Si : Hi := Hi + 1 e est dat par Hi : H(e) := Hi Si e est l'mission d'un message m, celui-ci est estampill par la date de son mission sur Si, obtenue en lisant Hi : E(m) = H(mission(m)) := Hi Si e est la rception d'un message m venant de Sj, l'estampille E(m) est utilise par le compteur Hi (l'horloge logique locale sur Si) pour rattraper le retard sur Hj, s'il en a, avant de dater d'incrmenter Hi pour dater e. Hi := max (Hi, E(m)) + 1
S1 0

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

4 e3

Ralisation d'un ordre total (<<) :

soit a sur Si, b sur Sj

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

EVALUATION DES HORLOGES LOGIQUES


Hypothses de validit le rseau de communication est connexe et fiable le temps de transmission des messages est born suprieurement pas de communication cache qui donneraient un autre ordre total (via des canaux comme le tlphone entre utilisateurs, ou comme une heure universelle fournie par satellite). Avantages premire datation rpartie introduite conomique : datation par un seul nombre et non par un vecteur causalit des messages respecte par remise l'heure du rcepteur Utilisation importante des estampilles ordre total : e11 e21 e31 e22 e32 e23 e24 e12 e25 e13 e33 e34 exclusion mutuelle rpartie mise jour de copies multiples diffusion fiable ordonne totalement datation des transactions rparties pour grer les verrous des BD datation des transactions rparties pour la prvention d'interblocage gestion cohrente de fichiers rpartis gnration rpartie de noms uniques pour la dsignation interne gnration rpartie de noms uniques pour l'authentification Limitation de la datation par estampilles la notion de dpendance causale est efface artificiellement, car les estampilles ne sont pas denses : si H(e) < H(e'), on ne peut pas savoir s'il existe e'' tel que e e'' ou e'' e'

C. Kaiser

4.3

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

LIMITATION DE LA DATATION PAR HEURE LOGIQUE


e e' H(e) < H(e')

(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

4 e3

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

EXCLUSION MUTUELLE REPARTIE (Lamport 1978) EXEMPLE

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

H1 M11 LIB,0,1 0 M12 LIB,0,2 M13 LIB,0,3 0 0

H2 M21 LIB,0,1 M22 LIB,0,2 M23 LIB,0,3 0 0 0

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

M11 REQ,2,1 M12 REQ,2,2 M13 ACQ,6,3

2 3 7

M21 REQ,2,1 M22 REQ,2,2 M23 ACQ,4,3 M21 LIB,10,1

3 2 5 11 2 5

S1 entre en s.c. M22 REQ,2,2 H1 = 7


M23 ACQ,4,3

M31 LIB,10,1 M32 LIB,12,2 M33 LIB,0,3

11 13 0

S2 entre en SC H2 = 11
C. Kaiser 4.6 Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

EXCLUSION MUTUELLE REPARTIE (Ricart, Agrawala 1981)

Hypothses le nombre N des sites est connu les canaux sont quelconques (hypothse FIFO non ncessaire) ordre total ralis par horloge logique

Principe : file d'attente rpartie par morceau sur certains sites

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

Systmes et Applications Rpartis

(cours B4 code 19302)

EXCLUSION MUTUELLE REPARTIE (Ricart, Agrawala 1981) EXEMPLE

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

a3 : S2 f3 : S2,S1 a3 : S2,S1 f3 : S2,S1 f3 :

lgende :

ai : ensemble des ACC reus par le site i fi : ensemble des sites mis en attente par Si

C. Kaiser

4.8

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

POSE DE POINTS DE REPRISE RPARTIS

* 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

Systmes et Applications Rpartis

(cours B4 code 19302)

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

On peut repartir avec r13, r22, r32 si on a not l'mission de m1 et m4


C. Kaiser 5.2 Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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.

CHEMIN CAUSAL ENTRE POINTS DE REPRISE


si r p,i -> r q,j , alors on a un chemin causal chemin causal => chemin en zigzag chemin en zigzag > chemin causal

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

Systmes et Applications Rpartis

(cours B4 code 19302)

EXEMPLES DE CHEMINS ET CYCLES EN ZIGZAG

r11 S1 x m1 r21 S2 x m2 r31 S3 x r32 x m3

r12 x m4 r22 x

r13 x m5

panne r33 x

chemin en zigzag de r11 r32, chemin non causal

r11 S1 x m1 r21 S2 x m2 r31 S3 x r32 x m3

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

PRINCIPE DE LA SAUVEGARDE ADAPTATIVE

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

DTECTION DES CYCLES EN ZIGZAG


difficult car parfois la connaissance du futur lointain est ncessaire r11 r12 x S1 x m1 r21 S2 x m3 r31 S3 x Le cycle en zigzag autour de r12 apparat bien aprs r12 quand m3 arrive APPROXIMATION : DTECTER LES CHEMINS CAUSAUX r11 r12 x S1 x m1 m2 r11 r12 x S1 x m1 r13 m2

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

r32 : cycle en zigzag non dtect (il n'est pas causal)


C. Kaiser 5.6 Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

ALGORITHME DE SAUVEGARDE ADAPTATIVE Dtecter les dpendances causales :


On utilise les horloges vectorielles pour dater les points de reprise On associe une horloge vectorielle V i chaque site Si Initialement Vi = (0,0,...,0,1,0,...,0) nul partout sauf la ime composante A chaque point de reprise nouveau 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 [j] := max(V i [j], Vm[j]) pour tous j = 1,...n, j i

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

finsi; 2 : V i [j] := max(V i [j], Vm[j]) pour tous j = 1,...n, j


5.7

C. Kaiser

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

EXEMPLES DE SAUVEGARDE ADAPTATIVE

r11 S1 x

RV1 = (2,0) r12 Zid = RV1[1] x m2,(2,2),2

r11 r12 x S1 x m1,(2,0),0

RV1 = (3,0) RV1 = (3,2) r13


Zid RV1[1]

m1,(2,0),0

m2,(2,2),2 x r22 RV2 = (2,2)

S2 x r21 RV2 = (0,1)


Zid

x r22 RV2 = (2,2)


RV2[2]

S2 x r21

un cycle en zigzag pour r22 est dtect sur S1 l'arrive de m2

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

RV3 = (0,0,1) RV3 = (0,1,2)

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

Systmes et Applications Rpartis

(cours B4 code 19302)

EXEMPLE DE SAUVEGARDE ADAPTATIVE


S1 RV1=(1,0,0) x r11
m1,(1,0,0),0 Zid RV2[2] r21 x RV2=(0,1,0) V2=(1,1,0) m2,(1,1,0),0 Zid RV3[3] m3,(1,1,0),0 Zid RV1[1] m4,(1,1,1),0 Zid RV1[1] r22 x RV2=(1,2,0) V2=(1,2,1) m5,(1,1,1),0 Zid RV2[2] m6,(2,1,1),1 Zid=RV3[3] r32 V3=(1,1,1)

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)

m7,(2,1,2),1 Zid RV1[1] m8,(1,2,1),0 Zid RV3[3] V3=(2,2,2)

RV1=(3,1,2) x r13
m9,(3,1,2),1 Zid RV2[2] V2=(3,2,2) r23

cycle en zigzag m9 m8 m7 non dtect

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)

r14 m12,(3,3,2),3 Zid=RV1[1]

S1

S2 trois reprises sont forces sept reprises spontanes

S3

C. Kaiser

5.9

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

CONCLUSION SUR LA SAUVEGARDE ADAPTATIVE


RSULTATS EXPRIMENTAUX :

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

Systmes et Applications Rpartis

(cours B4 code 19302)

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

r34 r14 m12 m11

S1

S2

S3

toutes les onze sauvegardes sont forces


C. Kaiser 5.11 Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

AUTRES MODLISATIONS D'UNE XCUTION RPARTIE


Pi ei,1 m1 Pj ej,1 ej,2 ej,3 ei,2 ei,3 m2 ej,4 m3 Pk ek,1 ek,2 ek,3 ej,5 m4 ek,4 ei,4 m5 ej,6 ej,7 m6 ek,5 ek,6 ek,7 ej,8 ej,9 m7 ej,10 m8 ek,8 ei,5 ei,6 ei,7

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

2. Mme excution rpartie modlise par des tats locaux


ci,0 Pi m1 Pj cj,0 cj,1 ci,1 m2 m3 Pk ck,0 ck,1 m4 ci,2 m5 cj,2 m6 ck,2 m7 m8 ck,3 cj,3 cj,4 ci,3

3. Mme excution rpartie modlise par des points de contrle


C. Kaiser 5.12 Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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

Application cooprative asynchrone


S1 : traitement t1 avec t2 avec la copie locale; S2 : traitement t4 avec S3 : traitement t3 avec t1 t2 t3 t4 : : : : la copie locale; envoi M1; dlai variable ; traitement envoi M2; la copie locale; envoi M4; la copie locale; envoi M3;

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

{100} M1;M3;M2;M4 {122}

e23

S2
e31 e32

e24

{100} M1;M4;M2;M3 {121} e25


M3 M2

e22 e33 t3
M1

t4
M4

e26 e36

S3
e41

e34

e35
M2 M4

{100} M3;M1;M4;M2 {120}


M1 M3

S4

e42

e43 e44 e45 {100} M4;M2;M3;M1 {119}

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

Systmes et Applications Rpartis

(cours B4 code 19302)

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

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

RELATIONS ENTRE VNEMENTS DE DIFFUSION


On a 6 relations entre les vnements de diffusion des 4 messages ordre local d'mission : mission 1 (M1) ordre causal d'mission mission 1 (M1) mission 3 (M3) mission 1 (M1) mission 2 (M4) mission 1 (M2)

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

Systmes et Applications Rpartis

(cours B4 code 19302)

RESPECT DE L'ORDRE CAUSAL


Comment assurer le respect de l'ordre causal et de l'ordre local? utilisation des horloges vectorielles

(1,0,0,0)

(1,0,1,0) (2,0,1,0) M3

(2,1,1,0) M4

{100} M1;M3;M2;M4 {122}

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

{100} M1;M4;M3;M2 {122}


(2,1,1,0)

S3

t3
(0,0,1,0)

(1,0,1,0) (1,1,1,0)

{100} M3;M1;M4;M2 {120}


M1 M2

S4

(1,0,1,0) (2,1,1,0) (0,0,1,0) (1,1,1,0)

{100} M3;M1;M4;M2 {120}

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

autre solution avec objet primaire et objets secondaires

C. Kaiser

6.4

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

ORDRE TOTAL DE DIFFUSION DES MESSAGES AVEC UN SITE SQUENCEUR


un site squenceur fournit le numro de diffusion l'ordre total dpend de l'ordre de rception de la demande de numro Premire tape : numroter les diffusions avec un squenceur sur S2
t1,10 t2,13
M3,11 R10 M 1 , 1 0

{100} M1;M3;M2;M4 {122}


M4,12

S1 *
D

*
D

R13

S2
D R11

O * D

t4,12
M2,13

{100} M1;M4;M2;M3 {121}


M3,11 M2,13 M4,12

R12

S3

M1,10

t3,11

{100} M3;M1;M4;M2 {120}


M1,10

S4

M4,12

M2,13 M3,11

{100} M4;M2;M3;M1 {119}

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

* M1,10

t3,11
M3,11

M4,12

M2,13

S4
M1,10

M2,13

partout {100} M1;M3;M4;M2 {122}

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

Systmes et Applications Rpartis

(cours B4 code 19302)

ORDRE TOTAL DE DIFFUSION DES MESSAGES AVEC UN ANNEAU VIRTUEL ET UN JETON


le jeton contient un squenceur qui fournit le numro de diffusion l'ordre total dpend de l'ordre de rception du jeton Premire tape : numroter les diffusions
J9

t1,10

J11

S1

* *
M1,10 J10

**

M 3 , 1 1 J12

t2,13
M4,12

{100} M1;M3;M2;M4 {122}

**
J13 M 2 , 1 3

J12

S2

** * t3,11 * J10

**

t4,12

{100} M1;M4;M2;M3 {121}

M3,11

M2,13

S3

** M 1 , 1 0 * * J11 * * J12

M4,12

{100} M3;M1;M4;M2 {120}


M1,10

S4

* J9

M4,12

M2,13 M3,11

jeton squenceur

{100} M4;M2;M3;M1 {119}

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

partout {100} M1;M3;M4;M2 {122}

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

Systmes et Applications Rpartis

(cours B4 code 19302)

ORDRE TOTAL DE DIFFUSION DES MESSAGES EXCLUSION MUTUELLE RPARTIE


on utilise Ricart-Agrawala l'ordre total dpend des valeurs initiales des horloges logiques
REQ,3,1 M3,11,3 13

S1 *
4

t1

REQ,16,1 19

{100} M3;M1;M2;M4 {120} t2


23 25 M4,28,2

15 ACC,12,3 6

REQ,19,2 M1,15,1 M3,11,3 8 10 9 11 M1,15,1 18

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

M3,11,3 M2,23,1 M4,28,2

{100} M1;M2;M3;M4 {121}

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

REQ,19,2 M1,15,1 M3,11,3 8 10 9 11 M1,15,1 18

t4
26

S2 * 0

M2,23,1

S3

* * 0

REQ,1,3

t3

M2,23,1 M4,28,2

S4

20

on obtient partout {100} M3;M1;M2;M4 {120}

M3,11,3 M1,15,1 M2,23,1 M4,28,2

C. Kaiser

6.7

Synchronisation rpartie : concepts de base

Systmes et Applications Rpartis

(cours B4 code 19302)

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

partout on a {100} M1;M3;M4;M2 {120}

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