Abstract:
LES problèmes d’accord ont une extrême importance dans la conception et la vérification
des applications tolérantes aux fautes dans les systèmes distribués, ce qui a
suscité des recherches intenses pour trouver des solutions efficaces à ces problèmes. La diffusion
atomique est l’un de ces problèmes d’accord et qui représente une brique de base dans
la conception des applications tolérantes aux fautes. Elle est définie par le fait que tous les
processus, participants à une tâche dans le système, doivent délivrer le même ensemble de
messages dans le même ordre. Plusieurs solutions ont été proposées pour le résoudre.
Dans ce travail, nous avons fait une étude exhaustive sur le problème de la diffusion
atomique. Nous avons présenté des généralités sur les systèmes distribués et les problèmes
d’accord, qui ont une relation directe ou indirecte avec le problème étudié. Par la suite, nous
avons exhibé le problème de la diffusion atomique, nous avons donné une définition formelle
et informelle de ce problème, nous avons présenté, aussi, quelques solutions de base, pour
résoudre ce problème, qui diffèrent selon deux critères : le mécanisme d’ordre de messages
utilisé et le mécanisme de détection de défaillances implémenté. Ces solutions présentent des
inconvénients remarquables, ou bien l’utilisation d’un mécanisme de tolérance aux fautes
très fort, ou bien l’utilisation d’un mécanisme d’ordre de messages qui augmente le trafic
dans le système, ce qui a une influence directe sur la latence de ce système.
Pour remédier à ces inconvénients, nous avons proposé une solution au problème de la
diffusion atomique. Cette solution se base sur le principe du coordinateur tournant qui essaie,
après son élection par la liste des processus corrects générée par le plus faible détecteur
de défaillances S, de regrouper un ensemble de processus corrects dans un anneau logique
et d’imposer la liste des messages à délivrer par cette même liste en collaboration avec le
coordinateur, en faisant circuler un jeton qui transporte les informations nécessaires à la
prise de décision.
Nous avons évalué les performances de notre proposition par la simulation. L’utilisation
d’un simulateur des systèmes distribués existant, nommé neko, a été très bénéfique, du fqu’elle nous a permis de comparer les résultats obtenus de notre protocole avec d’autres
résultats des autres solutions existants dans la littérature, celui de Chandra et Toueg [CT96]
et celui de Ring Paxos [PMP12].
En guise de perspectives, nous souhaitons implémenter notre proposition sur un réseau
réel, ce qui nous permettra de renforcer les résultats obtenus par la simulation. Nous souhaitons,
aussi, proposer une autre solution au problème de la diffusion atomique, qui remédie
à l’inconvénient de la surcharge du réseau par les messages de contrôle (votes), ainsi que
l’utilisation d’un détecteur de défaillances équivalent à S, nommé
, qui a un double
travail, la détection de défaillances et la génération automatique d’un leader, ce qui évite
d’élire un nouveau coordinateur à la demande des processus du système.