PLAMP , Parameterized Light Atomic Broadcast and Membership Protocol

Auteur:  Jean Fanchon 

LAAS-CNRS
7 avenue du colonel Roche 31077  Toulouse cedex
tel: 05 61 33 64 75
mel:  fanchon@laas.fr


PLAMP  est un logiciel (en C++ actuellement) d'appartenance de groupe et de
diffusion
à ordre total,en cours de développement. Il est prévu tolérant
aux fautes, pannes de processus ou pertes de messages sous certaines hypothèses.


Une présentation   Slides.pdf

La documentation du code  par Doxygen :   DOC.html

Contexte

Les applications coopératives distribuées s'affranchissent de plus
en plus d'un contrôle centralisé pour un contrôle distribué permettant
de pallier plus facilement aux pannes du contrôleur ou du réseau
de communication, d’éviter les problèmes de congestion etc.
Ainsi les algorithmes dits de consensus permettent à des participants
de décider d'une valeur commune de façon distribuée.
La communication de groupe à ordre total est aussi une forme de consensus :
les participants s'échangent des messages qui sont délivrés à tous dans
le même ordre, et peuvent ainsi maintenir un état commun, par exemple
 l'état d'une variable ou la liste des membres participants.
Au-delà des recherches effectuées sur les hypothèses nécessaires pour
la conception de ce type de protocoles, l'émergence de nouveaux types
de réseaux (réseaux mobiles ad hoc, réseaux de capteurs) offre de nouveaux
cas d'étude et ouvre de nouvelles perspectives pour ces protocoles.

Le logiciel

Les caractéristiques de PLAMP sont sa compacité (il intègre l'appartenance de groupe et
la diffusion à ordre total) et la possibilité de le paramétrer selon plusieurs critères.
En particulier on peut choisir l'algorithme de décision en fonction de différentes
hypothèses de fautes et différents contextes d'utilisation.

Il peut fonctionner de facon optimiste,
" on ne suspecte que des processus fautifs, mais on peut ne pas les
suspecter tous", ou pessimiste " on suspecte tous les processus fautifs,
mais aussi eventuellement des corrects". Il peut se parametrer pour
avoir des comportements intermédiaires . Il fonctionne sur un réseau
non fiable, actuellement sur UDP, et n'a pas besoin d'une couche multicast
fiable. Il intègre la gestion des pertes de messages et des pannes
de sites.

Etat du développement

Les principales structures de données et de controle sont implémentées
et testées sur le réseau du LAAS avec une couche application élémentaire
dédiée à la vérification des propriétés ( voir  :   DOC.html )
L'algorithme actuellement utilisé est du type pessimiste avec décision sur 2 phases
( voir   Slides.pdf ) et rend le service attendu sur les nombreux tests effectués avec
jusqu'a 30 processus pouvant s'inscrire et  s'interrompre.
Sont en cours d'implantation une phase d' initialisation  des groupes et une interface
de programmation mieux structurées et faciles d'utilisation.
De nombreuses améliorations et  développements sont envisagés, dont certains sont
indispensables. Il s'agit entre autres du traitement des cas (rares sur les tests)
où les hypothèses de faute sont outrepassées et qui ont par exemple donné lieu à des
partitions du groupe.
Par ailleurs l'utilisation par des applications plus lourdes peut faire apparaitre des
problèmes, en particulier dans le séquencement des threads.


Partenariats

Les personnes intéressées par ce développement, en tant qu'acteurs ou utilisateurs sont
bienvenues.

Modifié le 15/9/2008