of 35/35
Probl` eme de datation Protocoles causalement ordonn´ es Diffusion de groupe Syst` emes r´ epartis Causalit´ e et datation erard Padiou epartement Informatique et Math´ ematiques appliqu´ ees ENSEEIHT Octobre 2012 erard Padiou Syst` emes r´ epartis 1 / 35

Systèmes répartis - Causalité et datation

  • View
    219

  • Download
    2

Embed Size (px)

Text of Systèmes répartis - Causalité et datation

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Systemes repartisCausalite et datation

    Gerard Padiou

    Departement Informatique et Mathematiques appliqueesENSEEIHT

    Octobre 2012

    Gerard Padiou Systemes repartis 1 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    plan

    1 Probleme de datationTemps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    2 Protocoles causalement ordonnesApproche par compteursApproche par surchargeDiffusion causalement ordonnee

    3 Diffusion de groupeTolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Gerard Padiou Systemes repartis 2 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Plan

    1 Probleme de datationTemps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    2 Protocoles causalement ordonnesApproche par compteursApproche par surchargeDiffusion causalement ordonnee

    3 Diffusion de groupeTolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Gerard Padiou Systemes repartis 3 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Probleme de base et difficultes

    Comment dater les evenements dune execution repartie ?Pas dhorloge globale ;

    Tous les evenements ne sont pas causalement lies ;

    Datation coherente avec la relation causale :

    e, e : e e de < de

    Exemple

    Idee : Utiliser les horloges de chaque siteRisque : Datation incoherente de levenement de receptiondun message : la date de reception precede la date demission.

    Possible si lhorloge du site de reception est en retard(suffisamment) sur celle du site de lemetteur.

    Gerard Padiou Systemes repartis 4 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Difficultes

    Coherence avec la causalite ;

    Datation definissant un ordre total ;

    Solutions

    Necessite une synchronisation des horloges locales :

    invariant Max(hi : i = 1,N)Min(hi : i = 1,N) <

    Protocole de synchronisation dhorloges possible mais dans descontextes reseaux assurant une certaine qualite de service ou parlusage dun signal diffuse (horloge atomique).

    Gerard Padiou Systemes repartis 5 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Temps logique

    Principes de base

    Compter les evenements au lieu du temps reel ;

    Associer a chaque site une horloge logique locale ;

    Surcharger les messages avec leur date demission ;

    Recaler si necessaire lhorloge locale dun site lors de chaquereception de message ;

    Avantage : vision plus abstraite dun calcul reparti.

    Gerard Padiou Systemes repartis 6 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Une tentative. . .

    Un compteur horloge sur chaque site ;Surcharge des messages et recalage de compteur.

    A

    B

    C

    a1 a2 a3 a4

    b1 b2

    b3

    c2c1 c3

    0

    0

    0

    (1) (2) (3)

    (4)

    Recalage(2) (3)

    (5)

    (6)

    (6)

    (7)

    1 2 3 6

    4 5 6

    32

    7

    , e e d(e) < d(e ) ;, Memes dates pas causalement lies ;/ mais d(e) < d(e ) ; e e (ex : d(c2) < d(b3) ; c2 b3)

    Gerard Padiou Systemes repartis 7 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Horloge de Lamport

    Proprietes

    Introduit un ordre total entre evenements ; Dates distinctes pour tout couple devenements

    Date = (numero de site, compteur local) ordre total sur les sites (par leur numero)

    public class Date {protected int s ; protected int cpt ;static boolean Prec ( Date d1, Date d2 ) {

    return (d1.cpt < d2.cpt)||( (d1.cpt == d2.cpt) && (d1.s < d2.s)) ;

    }

    }

    Gerard Padiou Systemes repartis 8 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Actions associees aux evenements

    Type devenement sur un site s Action sur le site s

    Evenement interne sur s Hs .Top()

    Emission sur s de m dm = Hs .Top() ;envoi de < dm,m >

    Reception sur s de < dm,m > Hs .Recaler(dm)

    A

    B

    C

    a1 a2 a3 a4

    b1 b2

    b3

    c2c1 c3

    (A,1)

    1

    1

    (C,1)

    (B,4)

    (B,5)

    2 3 4 6

    4 5 6

    32

    6

    1(A,2) (A,3) (A,5)

    (B,3)

    (C,2) (C,5)

    Gerard Padiou Systemes repartis 9 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Horloge de Fidge-Mattern

    Proprietes

    datation isomorphe a lordre causal ;

    utilisation de vecteurs de dimension egale au nombre de sites ;

    cout plus eleve : surcharge des messages par un vecteur.

    Expression des relations entre dates

    D,D : D D i : D[i ] D [i ]

    D,D : D < D D D k : D[k] < D [k]

    D || D (D < D ) (D < D)

    Gerard Padiou Systemes repartis 10 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Temps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Actions associees aux evenements

    Type devenement sur un site s Action sur le site s

    Evenement interne sur s Hs .Top()

    Emission sur s de m dvm = Hs .Top() ;envoi de < dvm,m >

    Reception sur s de < dvm,m > Hs .Recaler(dvm)

    Exemple

    (3,3,4)

    a1 a3

    c1 c3c2

    b3b2

    A

    B

    C

    b1

    a4(1,0,0)

    (0,0,1)

    (2,0,0) a2 (3,0,0) (4,0,0)

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

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

    (5,2,0)

    (3,4,0)

    Gerard Padiou Systemes repartis 11 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Plan

    1 Probleme de datationTemps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    2 Protocoles causalement ordonnesApproche par compteursApproche par surchargeDiffusion causalement ordonnee

    3 Diffusion de groupeTolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Gerard Padiou Systemes repartis 12 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Definition dun protocole (causalement) ordonne

    Objectif

    Garantir la coherence des receptions sur un meme site par rapporta leur causalite eventuelle en emission.

    reordonner les messages recus sur un site

    Trois evenements au lieu de deux par message :

    lemission e,la reception r ,la delivrance dCausalite : e r d

    Sexprime par la propriete :

    s : (m,m : rs r s :: e e d d ))

    Gerard Padiou Systemes repartis 13 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Un essai, mais . . .

    Datation causale

    Permet la detection des anomalies en reception MAIS pas leurprevention.

    A

    B

    C

    e1

    e2

    r1r2

    e

    r

    < ,M1>

    < ,M2>

    100

    220

    220

    100

    Gerard Padiou Systemes repartis 14 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Principes de lalgorithme

    Notion dhistoire causale dun message Hc(m)

    Lhistoire causale Hc(m)dun message m est lensemble desmessages qui ont leurs evenements demission precedantcausalement lemission de m :

    Hc(m) = {m : e e}

    Critere de delivrance dun message

    Un message m est delivre sur un site s ssi tous les messages de sonhistoire causale ayant aussi s comme site de destination ont etedeja delivres :

    s : m,m Hc(m) : rs r s ds ds

    Gerard Padiou Systemes repartis 15 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Principes de lalgorithme

    Exemple.

    ?

    P1

    P2

    P3

    P4

    m10

    m1

    m2

    m3

    m4

    m7

    m5 m6

    m8

    m9

    Gerard Padiou Systemes repartis 16 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Solution : Approche par compteurs (Michel Raynal)

    Structures de donnees

    + Representer lhistoire causale de chaque message.

    Chaque site gere :

    MP : une matrice de precedence causaleMP[i , j ] = nombre de messages emis de Si vers Sj

    Dernier : un vecteur de compteurs des messages recus dechaque site

    Dernier [i ] = nombre de messages recus du site Si

    Tout message est surchargee par une copie de la matrice MPdu site emetteur.

    Gerard Padiou Systemes repartis 17 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Actions associees aux evenements

    Type devenement sur un site s Action sur le site s

    Emission sur s de M vers s MPs [s, s] + + ;

    envoi de < MPs ,M >

    Reception sur s de < MP,M > MPs = max(MP,MPs)issu de s Dernier [s] + +

    Delivrance sur s de < MP,M > Delivrable(M) issu de s Dernier [s] == MP[s, s ]

    i 6= s : Dernier [i ] MP[i , s ]

    Gerard Padiou Systemes repartis 18 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Controle des delivrances

    ?

    P1

    P2

    P3

    P4

    0 1 0 0 1 0 2 1 0 1 0 0 1 0 2 0

    Dernier = (0,1,0,1)

    mis vers P3 m1

    m2

    m3

    m4

    m5 m6

    m7

    m8

    m9

    Dernier = (0,2,0,1)

    0201

    Gerard Padiou Systemes repartis 19 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Approche par surcharge (piggybacking)

    Principe

    Surcharger chaque message avec lhistoire des messages qui leprecedent causalement

    Dans le contexte du courrier electronique : Approche similairedu reexpedier avec copie de ce que lon a recu

    Exemple

    , m2

    A

    C

    B

    e1 e

    re2

    r2 r1d1 d2

    ,m1

    message ignor

    ,m

    Gerard Padiou Systemes repartis 20 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Approche par surcharge (piggybacking)

    Mise en uvre

    , Simple et apport dune certaine tolerance aux pertes demessages par redondance ;

    / Messages de + en + longs Quand, Comment reduire les histoires ?

    Exemple

    liminer (m1,C)

    A

    C

    B,m1

    ,m2

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Approche par compteursApproche par surchargeDiffusion causalement ordonnee

    Une chance. . .

    La diffusion ordonnee est plus simple !

    Approche par matrice causale

    Il suffit de gerer un vecteur demission au lieu dune matrice.

    Toutes les lignes sont identiques : un processus envoie lememe nombre de messages a tous.

    Vecteur local

    Dfaut de causalit

    (a,b,c)

    A

    C

    B

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

    (0,0,0)

    (1,0,0)

    Gerard Padiou Systemes repartis 22 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Plan

    1 Probleme de datationTemps reelTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    2 Protocoles causalement ordonnesApproche par compteursApproche par surchargeDiffusion causalement ordonnee

    3 Diffusion de groupeTolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Gerard Padiou Systemes repartis 23 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Tolerance aux fautesTravaux de Kenneth P. Birman (Cornell University)

    Objectif : modele dexecution tolerant aux fautes

    Principes

    Groupes reconfigurables de processus ;

    Service assure par un groupe de serveurs ;

    Diffusion inter et intra-groupe ;

    Pile de micro-protocoles ;

    Synchronisme virtuel ;

    Botes a outils : Isis, Horus, Ensemble ;

    Monde Java : Javagroups (http://www.jgroups.org)

    Gerard Padiou Systemes repartis 24 / 35

    http://www.jgroups.org

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    La notion de groupe de processus

    Diffusion inter-groupes

    Les clients ne connaissent que le nom du groupe ;

    Les membres ne communiquent pas ;

    Diffusion atomique et ordonnee des messages.

    Diffusion intra-groupe

    Les membres du groupe cooperent ;

    Liste des membres connue de chacun ;

    Coherence : Meme vision du groupe.

    Gerard Padiou Systemes repartis 25 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Problemes cles

    Client C

    Primaire P

    Secondaire S

    Client C

    Primaire P

    Secondaire S

    connexion ? ou arrt ?

    Diffusion coherente vers le groupe :

    Ordonnancement des messages : fifo, causal, total ;Traitement atomique des defaillances.

    Composition du groupe : ajout/retrait dun membre,historique ;

    Synchronisation des traitements des membres.

    Gerard Padiou Systemes repartis 26 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Diffusion anarchique

    Ordre causal ?

    Ordre total ?

    Atomicite ?

    Arret/Reprise ?

    S1 S2 S3C2C1

    m4

    m5

    crash

    m3

    m2

    m1

    Gerard Padiou Systemes repartis 27 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Synchronisme fort

    Proprietes

    Communications fiables ;

    Diffusion atomique, i.e. de temps logique nul ;

    Atomicite du passage du groupe a la liste de membres ;

    Messages delivres a tous les destinataires dans le meme ordre ;

    Cet ordre est compatible avec la causalite entre messages ;

    Atomicite du transfert detat lors de linsertion dun processus ;

    Fautes atomiques vis-a-vis des diffusions, et ordonneesidentiquement sur tous les sites.

    Gerard Padiou Systemes repartis 28 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Synchronisme virtuel

    Objectif : sapprocher du synchronisme fort

    Cl1

    S3

    S2

    S1

    Cl2

    Gerard Padiou Systemes repartis 29 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Fonctionnalites dIsis

    Gestion des groupes

    Creer/Detruire un groupe ;

    Se joindre a un groupe (en tant que membre) ;

    Quitter un groupe (dont on est membre) ;

    Se connecter a un groupe (en tant que client) ;

    Se deconnecter dun groupe.

    Differents types de groupe

    groupe de diffusion groupe hirarchiqueGroupe clientserveurGroupe de pairs

    Gerard Padiou Systemes repartis 30 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Fonctionnalites dIsis

    Types de diffusion

    fbcast : canal fifo fiable ;

    cbcast : diffusion (causalement) ordonnee ;

    abcast : diffusion totalement ordonnee atomique ;

    gbcast : diffusion utilisee pour la gestion des groupes.(Coherence avec les diffusions ordonnees atomiques)

    Gerard Padiou Systemes repartis 31 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Mise en uvre dIsis

    Structure dune application (cliente et/ou serveur)

    1 initialiser les librairies Isis et se connecter a Isis ;

    2 declarer les taches et les points dentrees ;

    3 declarer les gestionnaires de signaux et dentrees-sorties ;

    4 initialiser letat de lapplication ;

    5 se joindre a des groupes et/ou devenir client ;

    6 indiquer a Isis quelle est prete a recevoir les messages.

    Gerard Padiou Systemes repartis 32 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Mise en uvre dIsis

    Comportement dun client

    void main() {

    /* connexion au service Isis */

    isis_init();

    serveur=pg_lookup("/services/exemple");

    pg_client(serveur);

    /* emission de requete */

    bcast(serveur,NumOp,,...,0);

    }

    Gerard Padiou Systemes repartis 33 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Mise en uvre dIsis

    Comportement dun serveur (declarations)

    void Handler_1(message *m1) {

    /* accepter le message */

    msg_get(m1,"",var1,...); ...

    }

    void Handler_p(message *mp) { ...} ;

    void send_state() {

    /* envoi de letat du serveur */

    xfer_out("",x,...) ;

    }

    void rcv_state(message *m) {

    /* mise a jour de letat du serveur */

    }

    Gerard Padiou Systemes repartis 34 / 35

  • Probleme de datationProtocoles causalement ordonnes

    Diffusion de groupe

    Tolerance aux fautesLa notion de groupeSynchronismeExemple Isis

    Mise en uvre dIsis

    Comportement dun serveur (suite)

    void main() {

    isis_init(0); /* connexion au service */

    /* connexion des handlers */

    isis_entry(OP1,Handler_1,"OP1");

    ...

    /* insertion du serveur dans son groupe */

    pg_join("/services/exemple",PG_XFER,

    send_state, rcv_state,0);

    isis_mainloop(0); /* attente dun appel */

    }

    Gerard Padiou Systemes repartis 35 / 35

    Problme de datationTemps relTemps logiqueHorloge de LamportHorloge de Fidge-Mattern

    Protocoles causalement ordonnsApproche par compteursApproche par surchargeDiffusion causalement ordonne

    Diffusion de groupeTolrance aux fautesLa notion de groupeSynchronismeExemple Isis