Vous êtes sur la page 1sur 16

Cours Informatique Répartie

Chapitre 5

Algorithmes d’Election

Problématique
 Plusieurs algorithmes distribués demandent
à un des processus de jouer le rôle de:
◦ Coordinateur
◦ Initiateur
◦ Séquenceur
◦ Etc.

 Terme générique: coordinateur

1
Cours Informatique Répartie

Principe des algo d’election

 En général, les algo d’élection tentent de


trouver le processus ayant le numéro le plus
élevé et le nomme coordinateur

 Les processus sont supposés connaître les


numéros (unique) des uns et des autres
MAIS un processus ne sait pas qui est actif et
qui ne l’est pas !

Principe des algo d’election

 La transmission des messages entre


processus est supposée fiable sans pertes

 MAIS:

◦ Garantir que si une élection commence, elle


se terminera avec l’accord de tous les
processus sur l’identité du nouvel élu

2
Cours Informatique Répartie

Principe des algo d’election

 Chaque processus Pi possède une variable


elui qui contient l’identifiant du processus élu.

 Lorsqu’un processus devient un participant à


l’élection il met cette variable à la valeur
spéciale ‘@’ .

 Durant l’exécution d’un algorithme d’élection,


on doit garantir Safety et Liveness

Principe des algo d’election

◦ E1 (Safety): Un processus participant pi a


elui = @ ou elui = P, où P est choisi à la fin
de l’exécution comme le processus en vie
possédant le plus grand identifiant

◦ E2 (liveness): tous les processus pi


participent et donc mettent elui = @

3
Cours Informatique Répartie

L’algorithme du plus fort – The


bully algorithm (Garcia-Molina, 1982)

 Quand un processus Pi s’aperçoit que le


coordinateur ne répond plus aux requêtes, il
provoque une élection =>
1. Pi envoie un message ELECTION à tout
Pj tels que j>i
2. Si personne ne répond, Pi gagne l’élection
et devient le coordinateur (et l’annonce à
tous)
3. Si un site de numéro plus élevé répond,
c’est lui qui prend le pouvoir. Le rôle de Pi
est terminé 7

L’algorithme du plus fort – The


bully algorithm

◦ A tout moment un processus Pj peut


recevoir un message ELECTION de Pi tel
que i<j.
 Quand un tel message arrive, Pj renvoie
un message OK à Pi pour lui indiquer qu’il
est en vie et qu’il va prendre le contrôle.

 Pj organise alors (à son tour) une élection

4
Cours Informatique Répartie

L’algorithme du plus fort –


The bully algorithm

◦ Tous les processus finissent par abandonner,


SAUF UN qui prend le rôle de nouveau
coordinateur.
 Il annonce sa victoire en envoyant un
message à tous les processus, les informant
qu’il est dorénavant le nouveau coordinateur

L’algorithme du plus fort – The


bully algorithm

1 1 1
2 2 2 2 2 2

4 ELECTION 4 OK 4
5 5 5
ELECTION
0 6 0 6 0 6
7 3 7 3 7 3
7 ancien Coord
1 1
2 2 2 2

4 4
5 5

0 6 0 6
COORDINATEUR
7 3 7 3 10

5
Cours Informatique Répartie

L’algorithme du plus fort – The


bully algorithm

◦ Pour chaque processus, l’algorithme définit un temps


d’attente maximum T entre l’envoi d’un message
ELECTION et la réception du message OK:
T = 2Ttrans + Tprocess où
 Ttrans: délai max de transmission du message
 Tprocess: délai de traitement du message

 Si aucune réponse
TTrans.n’arrive durant ce temps T, le
processus déduit que le processus en question est
en panne TTrans.
TProcess.

11

L’algorithme du plus fort – The


bully algorithm

 Nécessite au pire O(N 2) et au mieux


N-1 messages

 Garantie la condition E2 (vivacité)


grâce à la fiabilité de transmission des
messages

 Résiste bien aux pannes des processus


(mais pb choix des délais de garde)
12

6
Cours Informatique Répartie

L’algorithme du plus fort – The


bully algorithm

 MAIS E1 (sûreté) n’est plus garantie si:


 Un processus qui se plante est remplacé par
un processus avec le même identifiant =>
peut décider qu’il a l’identifiant le plus
grand au même moment où un autre
processus s’autoproclame élu => 2 élus

 La valeur de T n’est pas adéquate (trop


petite)

13

Algorithmes pour élection dans


un anneau: Algo1
 Fondé sur l’utilisation d’un anneau mais sans
jeton !!!

 Hypothèses
 Processus physiquement ou logiquement ordonnés de
façon que chacun connaisse l’identité de son
successeur
 L’identité des sites est unique
 Pas de pannes
 Les messages circulent dans un seul sens
(uniquement pour l’élection)
14

7
Cours Informatique Répartie

Algorithmes pour élection dans


un anneau: Algo1
Principe
 Pi s’aperçoit que le coordinateur ne
fonctionne plus, il construit un
message ELECTION contenant son
propre numéro et l’envoie à son
successeur Pj.
 Pj à son tour, ajoute son propre
numéro et envoie le message à son
successeur.
15

Algorithmes pour élection dans


un anneau: Algo1
Principe (suite)
 Au bout d’un moment, Pi reçoit ce
message, il le change en
COORDINATEUR et le met en
circulation une nouvelle fois pour
désigner le coordinateur (i.e., le
membre de la liste dont le numéro
est le plus grand)

16

8
Cours Informatique Répartie

Algorithmes pour élection dans


un anneau: Algo1

1 [2,3,4,5,6,0,1]
0 2 1
0 2
[2]
[6]
7 Transformés en messages
3 7
3 de désignation du coordinateur
[2,3] Puis remis en circulation
6 4 6 4 jusqu’à nouveau tour
5
5

Messages d’élection
◦ Nombre de messages: 2N où N est le nombre de
processus actifs
◦ Simplicité MAIS Gaspillage de la bande passante
(gros messages) surtout si plusieurs élections
simultanées
17

Algorithmes pour élection


dans un anneau: Algo2
Principe
 Lorsque Pi reçoit un message
(ELECTION, Pj):
 Si i ≠ j alors
 Si i>j alors pi émet à son voisin
(ELECTION, Pi)
 Si i<j alors Pi émet à son voisin
(ELECTION, Pj)

 Si i=j (le message a fait le tour de


l’anneau et Pi est l’élu) alors Pi émet un
message de (ELU, i) à son voisin 18

9
Cours Informatique Répartie

Algorithmes pour élection


dans un anneau: Algo2
Principe (suite)

 Lors de la réception d’un message


(ELU, j) par Pi
 Si i=j tous les sites connaissent l’élu 
fin de l’élection
 Sinon Pi relaye le message à son voisin

19

Algorithmes pour élection


dans un anneau: Algo2
 Diminuer la taille des messages échangés
(vs Algo1)
 Simple

 Pour N sites, le nombre de messages


échangés est:
 2N si Pi débute l’élection et devient l’élu
 3N-1 si Pi débute l’élection et celui qui
émet vers Pi devient l’élu
 Gaspillage aussi de la bande passante dans le
cas de plusieurs élections simultanées 20

10
Cours Informatique Répartie

Algorithmes pour anneau


Algo de Chang et Roberts

 Extinction progressive des messages par


filtrage

 Initialement tous les processus sont marqués


non participants à l’élection.

 Tout processus Pi peut commencer


l’algorithme. Il se marque lui-même
participant, place son identifiant i dans un
message (ELECTION, i) et l’envoi à son
successeur
21

Algorithmes pour anneau


Algo de Chang et Roberts
 Quand un processus Pi reçoit un message
(ELECTION, j):
Si j > i, il transmet le message sans le changer
Si j<i, et Pi n’est pas participant, il se déclare
candidat, place i dans le message et le transmet à son
successeur
Sinon, il ignore le message (déjà participant)
Si i=j, Pi=Pj devient le coordinateur: il se marque
comme non participant et envoi un message ELU à son
voisin.

 Sipk reçoit un message ELU, il se marque non


participant et met sa variable eluk = i 22

11
Cours Informatique Répartie

Algorithmes pour anneau


Algo de Chang et Roberts
Candidature (site Pi):
candidati = true
send(succ[i], ELECTION, i)
Reception sur Pi du message (ELECTION, j)
switch
j>i: send(succ[i], ELECTION, j) //j prioritaire
j<i: if not candidati //j non prioritaire
candidati = true
send(succ[i], ELECTION, i)
j=i: send(all, ELU, i) //site i élu

23

Algorithmes pour anneau


Algo de Chang et Roberts
 E1 vérifiée: tous les processus sont
comparés puisqu’un processus doit
recevoir son identifiant en retour
avant d’envoyer un message ELU

 E2 vérifiée aussi: anneau garanti sans


perte

24

12
Cours Informatique Répartie

Algorithmes pour anneau


Algo de Chang et Roberts

 Le pire des cas: 3N-1 messages

 Le pire des pires des cas: i=N(N-


1)/2 = 0(N2) si tous les processus
lancent l’élection en même temps et
disposés sur l’anneau dans un ordre
décroissant
25

Algorithmes pour élection


dans un anneau: Algo3
 Pi déclenche une élection
 Il se propose CANDIDAT et envoie
deux messages à ses voisins de droite
et de gauche
 Si l’estampille de Pi est supérieure à
celle de ses deux voisins, il envoie un
message aux voisins de ses voisins
jusqu’à faire le tour de l’anneau

26

13
Cours Informatique Répartie

Algorithmes pour élection


dans un anneau: Algo3
 Si un processus Pj dans l’anneau a une
estampille supérieure à celle de Pi, Pi
sera déclaré battu et c’est Pj qui
comparera son estampille avec tous
les autres

 Gagner du temps et des messages en


allant dans les deux sens dans
l’anneau => Parallélisme
27

Algorithmes pour élection


dans un anneau: Algo3
5
3 2

7 8

4 6
1

1 2 3 4 5 6 7 8

(candidature, 5, 0, 1)

(candidature, 5, 0, 1)

(réponse, vrai, 5)
temps 28

14
Cours Informatique Répartie

Élection dans un anneau avec


pannes de sites
 Les sites appartiennent à l’ensemble des sites
opérationnels (Qop) après une reprise, mais ils
ne doivent pas perturber l’environnement
durant une élection

 Quand un site démarre et qu’une élection est


en cours, les autres sites peuvent avoir une
information incomplète

 Pour joindre Qop, il faudrait relancer une


nouvelle élection, la dernière annulant les
précédentes 29

Élection dans un anneau avec


pannes de sites
 Problème de l’adressage
 Tous les sites doivent pouvoir s’échanger des
messages malgré les pannes éventuelles de
sites
 Retrait d’un site  problème d’adresse du
site suivant de l’anneau !!!
 Solutions possibles:
 Mise à jour répartie de la liste des
sites  Qop
 Ordre logique des adresses IP
 Réinsertion d’un site  messages aux voisins30

15
Cours Informatique Répartie

Élection dans un anneau avec


pannes de sites
 Problème de l’attente indéfinie des sites

 Pour déterminer si le destinataire d’un


message est en panne, il faut:

 Une borne T limitant le délai de


transmission (T est le délai pour faire
un tour de l’anneau par exemple)
 Un système d’accusé de réception

31

Élection dans un anneau avec


pannes de sites
Autre problème à résoudre
 A la réception de (ELECTION, j), Pi se
substitut à l’élu si i>j, et quand Pi se revoit
dans le message (ELU, i), le message a fait
un tour.

 Que se passe-t-il si Pélu tombe en panne


après s’être substitué dans le message ?

 Problème: Qui purge l’anneau ? L’élu ?


Comment s’arrête une élection ?
32

16

Vous aimerez peut-être aussi