applications réparties > processus d'élection d'un maître
Le
.Saphyr
Bonjour,
Toujours dans le cadre de ma question posée il y a 4 jours (merci ledev pour les premièrs élements),
je cherche un éventuel algorithme ou standard en matière d'élection d'un maître au sein d'un service
réseau.
Plus concrètement: dans une application communiquant par réseau avec d'autres instances, quelles
sont les meilleures pratiques afin d'arriver à ce qu'elles se mettent d'accord entre elles pour déterminer
qui va assurer le rôle du maître.
Est-ce que c'est quelque chose qui se fait au feeling ou y-a-t'il un protocole bien défini pour cela ?
Je pensais me calquer sur le processus d'élection de master browser qu'utilisent Microsoft avec les
services netbios. Bonne idée ?
.antoine
Toujours dans le cadre de ma question posée il y a 4 jours (merci ledev pour les premièrs élements),
je cherche un éventuel algorithme ou standard en matière d'élection d'un maître au sein d'un service
réseau.
Plus concrètement: dans une application communiquant par réseau avec d'autres instances, quelles
sont les meilleures pratiques afin d'arriver à ce qu'elles se mettent d'accord entre elles pour déterminer
qui va assurer le rôle du maître.
Est-ce que c'est quelque chose qui se fait au feeling ou y-a-t'il un protocole bien défini pour cela ?
Je pensais me calquer sur le processus d'élection de master browser qu'utilisent Microsoft avec les
services netbios. Bonne idée ?
.antoine

Poser une question


pour les premièrs élements),
maître au sein d'un service
d'autres instances, quelles
d'accord entre elles pour déterminer
protocole bien défini pour cela ?
qu'utilisent Microsoft avec les
Pourquoi ne pas simplement leurs faire tirer un nombre au hasard, ainsi
celle qui tire le plus grand est master.
Ainsi chaqu'un tire son nombre avec rnd, l'envoie au copine, et chaqu'un
vérifie de son coté la liste des nombres tirée(et chaqu'une des instance
sait alors qui est le masters, celle qui a envoyée le plus grand nombre).
Et en cas d'exequo, elle retire automatiquement un nombre.
De plus sa te permettrai de pouvoir mettrre une option "Forcer cette
instance a être master", ainsi elle aurrai juste a renvoyée 1(rnd renvoyant
toujours un nombre inférieur a 1), et elle serrai master. Toutefois une
petite précotion:
Si 2 ont une telle option de cochez, ont tombera sur un ex-equo a chaque
nouveau tirage, ainsi les instances doivent vérifié si l'option est activée
2 fois(si y'a deux 1 comme nombre tirée), et afficher un message indiquans
qu'ils faut en désactivée 1 des 2(elles peuvent égualement indiquez les IPs
des ex-equo, affin de retrouvée ou il faut allez décochez).
Voilà, a+.
Là j'étais en train d'établir les shémas de flux sur visio pour implémenter une sorte
d'élections démocratiques.
Genre "va chercher à moscou ce que tu as en bas de chez toi" je ne pouvais pas
faire pire. (je ne vis pas à moscou)...
Merci ! ; )
Mais je vais voir quand même si c'est viable le coup du nombre aléatoire. Parce que
s'il y a 150 instances qui se balancent entre elles des nombres aléatoires je ne sais pas
si c'est propre. = )
Pourquoi ne pas choisir en fonction des ressources ?
j'avais fais quelque chose de ce style, sauf qu'au lieu que l'on compare un
nombre aléatoire, on comparait un nombre représentant les ressources des
machines (+ il est grand + la machine est puissante), et en cas d'égalité,
on utilisait des nombres aléatoires...
Nicolas.
"Ledev" #
pouvais
aléatoire.
aléatoires
de
a
Les machines peuvent être considérées comme :
1) identiques
2) hierarchiquement toutes au même niveau
Donc cela ne m'arrange pas =(
Ne peux-tu pas les "élires" par ordre alphabétique?
Au chargement du programme tu obtiens la liste des postes par ordre
alphabétique, le premier est nommé master, s'il plante le deuxième se fait nommé
master et ainsi de suite... le traitement sera beaucoup moindre que l'histoire
de nombre aléatoire tu n'auras que l'index du tableau à incrémenter ou
décrémenter au besoin..
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
".Saphyr" news:
:
: Bonjour,
:
: Toujours dans le cadre de ma question posée il y a 4 jours (merci ledev pour
les premièrs élements),
: je cherche un éventuel algorithme ou standard en matière d'élection d'un
maître au sein d'un service
: réseau.
:
: Plus concrètement: dans une application communiquant par réseau avec d'autres
instances, quelles
: sont les meilleures pratiques afin d'arriver à ce qu'elles se mettent d'accord
entre elles pour déterminer
: qui va assurer le rôle du maître.
:
: Est-ce que c'est quelque chose qui se fait au feeling ou y-a-t'il un protocole
bien défini pour cela ?
: Je pensais me calquer sur le processus d'élection de master browser
qu'utilisent Microsoft avec les
: services netbios. Bonne idée ?
:
: .antoine
:
: