Modèle standard des algorithmes répartis
Modèle standard des algorithmes répartis
26 septembre 2017
plan
1 Le modèle standard
Approche événementielle
Causalité
Abstraction d’un calcul
Prise de cliché
Plan
1 Le modèle standard
Approche événementielle
Causalité
Abstraction d’un calcul
Prise de cliché
Description graphique
Sommets ≡ processus / sites
Arcs ≡ liaisons de communication / canaux
P2
c1
c7
P1
c3 c2
P5
c5
c6
c4 P4
P3
Propriétés
Propriétés des processus / sites
Un processus possède une identité unique
Un processus possède un état rémanent
Un processus exécute un code séquentiellement
Un processus n’a qu’une connaissance partielle des autres
Un processus peut communiquer avec un voisinage
Pas de panne (par arrêt ou comportement byzantin)
Propriétés du réseau
Multiples paramètres : point à point ou diffusion,
(a)synchrone, fiable, délais bornés, etc
Messages : ni duplication ni erreur
Systèmes et algorithmes répartis – II 5 / 43
Approche événementielle
Le modèle standard Causalité
Description des algorithmes Abstraction d’un calcul
Prise de cliché
Processus
Environnement
Nombre de processus ?
Voisinage de communication ?
Structure du réseau : maillé, anneau, statique/dynamique, etc
Représentation événementielle
3 types d’événements : émission, réception, interne
Mise en évidence de la causalité
e1 r2 e3 e4
P1
i1
P2
P3
r1 e2
P4
e5
0 temps
Synchrone
Asynchrone
Existence de pas de
Pas de temps externe
calcul (round) globaux
Progression de chaque
Un message émis dans
processus à son rythme
un pas est reçu au pas
Délai de transmission suivant / dans le même
arbitraire pas (selon le modèle)
r=1 r=2 r=3
P1 P1
P2 P2
P3 P3
∆
La relation ≺ est un ordre partiel : e k e 0 = e 6≺ e 0 ∧ e 0 6≺ e
Indépendance du temps physique mais consistent avec :
e ≺ e 0 ⇒ e est survenu avant e 0 dans le temps absolu
Exemple
a1 a2 a3 a4 a5
A
m2 m4
m1 b1 b3 b4
B
b2 m5
m3
C
c1 c2 c3 c4
a1 ≺ a2 ≺ a3 ≺ a4 ≺ . . .
a1 ≺ c1 , c2 ≺ a4 , b4 ≺ c4
a1 ≺ c3 (car a1 ≺ c1 ≺ c2 ≺ c3 )
a2 ≺ c4
a3 k c2
Exemple
passé(b2) futur(b2)
a1 a2 a3 a4 a5
A
m2 m4
m1 b1 b3 b4
B b2
m3 m5
C c1 c4
c2 c3
Coupure cohérente
Une coupure C est cohérente si ∀e ∈ C : ∀e 0 : e 0 ≺ e ⇒ e 0 ∈ C
Exemple
a1 a2 a3 KO OK
a4 a5
A
m2 m4
m1 b1 b3 b4
B b2
m3 m5
C c1 c4
c2 c3
Exemple
a1 a2 a3 KO OK
a4 a5
A
m2 m4
m1 b1 b3 b4
B b2
m3 m5
C c1 c4
c2 c3
Définition
Objectif : Capter, centraliser un état global passé des processus
e1 {}
e1
{} P1
m0
e1
m4
e2 e2
{m4} P2
m3
{m3} m5
{} P3 e3
e4 m1 m2
e3 P4
{m1,m2} e4
Idée
Matérialiser la coupe par la circulation d’un marqueur visitant
les sites
Les messages émis après le passage du marqueur ne peuvent
pas être dans la coupe
Les messages émis par Sj avant le passage du marqueur sur
Sj , et reçus par Si après le passage du marqueur sur Si , sont
considérés comme les messages en transit de Sj vers Si
Hypothèse
Canaux FIFO (pas de perte, pas de dépassement)
Hypothèses
Réseau fortement connexe (∀s, s 0 : ∃s →∗ s 0 )
Canaux unidirectionnels et fifo :
∀s, Rc(s) : canaux en réception
Em(s) : canaux en émission
S
Principes de l’algorithme
Utilisation de messages marqueurs
Rc(s) Em(s)
Répartition de l’évaluation : chaque site s
évalue :
son cliché local ;
les messages considérés en transit sur ses
canaux en réception Rc(s)
Algorithme de Chandy-Lamport
issus de B
e r’
A Message
marqueur
m m’
Message
en transit
B
e’ r
Vérifier la correction. . .
Propriétés
Sûreté
Coupure cohérente
Collecte complète des messages en transit
Vivacité
Tout site finit par prendre un cliché local
Un marqueur finit par arriver sur chaque canal de réception
Exemple
Cohérence de la coupure Séquence en transit complète
e e
A A
impossible
marqueur impossible
marqueur
B r B
r
C C
État enregistré
Σenreg = cliché enregistré
Σinit = coupure cohérente contenant l’événement déclencheur
du cliché
Σfinal = coupure cohérente dans lequel le protocole de prise
de cliché est terminé
Alors Σinit ≺ Σenreg ≺ Σfinal
Prédicat stable
Un prédicat P sur un état global E d’un système est stable ssi
∀E 0 : E ≺ E 0 ∧ P(E ) ⇒ P(E 0 )
Prédicat possible/certain
Pour un prédicat P :
Pos(P) (possibly P) : il existe une observation cohérente (=
un chemin dans le treillis) qui passe par un état où P est vrai.
Def (P) (definitely P) : toutes les observations cohérentes (=
tous les chemins) passent par un état où P est vrai.
Vérification
P(Σenreg ) ⇒ Pos(P) mais pas l’inverse. . .
¬Pos(P) ⇒ Def (¬P) mais pas l’inverse. . .
e2 0 e2 1 e2 2 e2 3 e2 4 e2 5
y=6 y=4 y=2
Exemple de vérification
Propriété stable
00
10 01
11 02
21 12 03
x ≥ 4?
31 22 13
(sous l’hypothèse x
41 32 23
croissant)
42 33
N’importe quel cliché Σenreg
43
obtenu après Σ31 permet de
53 44
le vérifier
63 54 45
64 55
65
Exemple de vérification
Possibilité
00
10 01
11 02
21 12 03 Pos(x = y − 2) ?
31 22 13 x = y − 2 est vrai dans les
41 32 23 états cohérents Σ31 et Σ41
42 33 Détecté uniquement si
43
Σenreg ∈ {Σ31 , Σ41 }
53 44 Σenreg pas nécessairement
63 54 45
survenu dans la réalité
64 55
65
Exemple de vérification
Certitude
00
10 01
11 02
Def (x = y ) ?
21 12 03
Vrai
31 22 13
Pos(x = y ) pas détecté si
41 32 23
on capture un état antérieur
42 33
à Σ32 ou postérieur à Σ54
43 La capture d’un état (p.e.
53 44 Σ42 ) ne permet pas de
63 54 45 conclure
64 55
65
Systèmes et algorithmes répartis – II 33 / 43
Approche événementielle
Le modèle standard Causalité
Description des algorithmes Abstraction d’un calcul
Prise de cliché
Plan
1 Le modèle standard
Approche événementielle
Causalité
Abstraction d’un calcul
Prise de cliché
Principes algorithmiques
Algorithmes symétriques
code répliqué,
données initiales propres : identité, voisinage de
communication.
Structurer les échanges de messages :
Utilisation de réseaux en anneau
Utilisation de la structure d’arbre
Étudier des problèmes génériques :
Les services : datation, exclusion mutuelle, consensus,
élection. . .
Les observations de propriétés stables : terminaison,
interblocage
La tolérance aux fautes : réplication, atomicité
Exemple : l’élection
Le problème de l’élection
Objectif : Élire un seul processus
mozart
bach berlioz
verdi
vivaldi
grieg
Conclusion