Stabilisation instantanée efficace Séminaire à l’université de Reims, le 5 avril 2007 Stabilisation instantanée efficace Alain Cournier, Stéphane Devismes et Vincent Villain
Stabilisation instantanée efficace Auto-stabilisation (Dijkstra, 1974) Un système auto-stabilisant, quel que soit son état initial, converge en un temps fini vers un comportement vérifiant ses spécifications. Stabilisation instantanée (Bui, Datta, Petit et Villain, 1999) Un système instantanément stabilisant, quel que soit son état initial, vérifie toujours ses spécifications. Applications : Tolérance aux fautes transitoires, systèmes dynamiques Stabilisation instantanée efficace
Stabilisation instantanée efficace Algorithme à vagues Un algorithme à vagues P vérifie [Tel, 2001] : Chaque exécution (vague) de P se déroule en un temps fini Chaque exécution de P contient au moins une décision Durant une exécution, chaque décision est causalement précédée par au moins une action sur chaque processeur Décision : tâche « terminée » Actions de démarrage Exemples : Propagation d’informations avec retour (PIR) Circulation de jetons Stabilisation instantanée efficace
Algorithme à vagues auto-stabilisant N est fini mais non borné N.X F(X) 4.X ≠ F(X) 3.X ≠ F(X) 2.X ≠ F(X) 1.X ≠ F(X) F(.) Un protocole de service auto-stab converges vers un comportement spécifique en un temps fini. En conséquence, un tel protocole doit être répété un nombre fini de fois pour assurer que le service fini par être rendu conformément à ses spécifs. En fait, le service sera rendu correctement à condition qu’il soit initié à partir d’une configuration légitime. Pb : dns le cas général, le nombre de répétitions nécessaire pour assurer un service correct n’est pas borné. Stabilisation instantanée efficace
Algorithme à vagues instantanément stabilisant 1.X F(X) F(.) Au contraire, la stabilisation instantanée assure que le service est rendu correctement dès la première exécution, quelque soit la config initiale. Il faut noter, que dans la snap, le service n’a pas besoin d’être démarrer à partir d’une configuration spéciale. Une configuration initial correct n’est pas requise pour assurer le service. Plus précisément, une perturbation du réseau, le réseau se retrouve dans une configuration quelconque. La snap assure qu’à partir de cette conf, dès la première requête. Le service associé à cette requête sera démarré en un temps fini et à partir de ce démarrage, le service sera rendu conformément à ses spécifs. Stabilisation instantanée efficace
Modèle à états Mémoire localement partagée Algorithme sous forme de règles gardées : Garde(p) → Traitement(p) Le modèle à états est un modèle à mémoire partagée : Chaque processeur a un accès direct en lecture aux variables de ses voisins En revanche, son accès en écriture est limité a ses propres variables Dans le modèle à états, on écrit les algorithmes sous la forme de commandes gardées : La garde d’une commande est un prédicats sur les variables du processeur et celle de ses voisins On dira qu’une commande est activable dans une configuration donnée si sa garde est à vrai Et dans ce cas le processeur sera dit « activable » Stabilisation instantanée efficace
Algorithme non tolérant aux fautes Transformateur Algorithme non tolérant aux fautes Algorithme instantanément stabilisant Le but d’un transformateur instantanément stabilisant est de … Stabilisation instantanée efficace
Les autres transformateurs Transformateur auto-stabilisant de [Katz et Perry, 1993] (modèle à passage de messages) Pour graphe quelconques Stabilisation instantanée efficace
Les autres transformateurs Transformateur instantanément stabilisant de [Cournier, Datta, Petit et Villain, 2003] (modèle à états) Pour graphe quelconques Stabilisation instantanée efficace
Transformateur de [Cournier et al, 2003] Auto(P) KP P Snap(P) CDPV Pas à usage pratique Outil de demonstration Tout protocole qui peut être transformé en protocole auto par KP peut être rtansformé en protocole snap par Counier et al Stabilisation instantanée efficace
Transformateur de [Cournier et al, 2003] Calcul périodique d’état global du système Inconvénients : Prédicat Réseau identifié Nombre de calculs d’état global non bornable Conséquence : nombre d’étapes de calculs pour une exécution non bornable Le transformateur de Cournier Datta Petit et Villain utilise périodiquement des calculs d’état global pour vérifié si le systeme est dans une configuration normale Inconvénient : Prédicat difficile à formaliser Réseau identifié Les snapshot se font indépendamment de la progreession de l’exécution du protocol à transformer. D’après le dernier inconvénient, on a les conséquences suivantes Stabilisation instantanée efficace
Transformateur instantanément stabilisant efficace Stabilisation instantanée efficace
Exemple : Circulation de jeton en profondeur Prédicat PriseEnMain(r) Stabilisation instantanée efficace
Exemple : Circulation de jeton en profondeur PriseEnMain(r) est vérifié Stabilisation instantanée efficace
Réinitialisation : PIR Phase de diffusion : Les processeurs stoppent l’exécution du protocole initial Phase de retour : les variables du protocole initial sont réinitialisées PIR instantanément stabilisant [Cournier, Devismes et Villain, 2006] Nombre borné d’étapes de calculs par exécution PIR -> RESET : easy Nous avons créé un protocole de PIR instantanément stabilisant en utilisant en particulier le mécanisme de question Avantage ? Stabilisation instantanée efficace
Stabilisation instantanée efficace Notre transformateur Algorithme à vagues mono-initiateur Décision à l’initiateur Exemples : Parcours en profondeur Calcul d’arbre en largeur avec détection de terminaison Applications : Calcul d’arbre couvrant Exclusion mutuelle Diffusion Notre transformateur : utilisable mais pas universel On s’intéresse à … Pourquoi ces proto : Tout d’abord, protocole fondammentaux qui permettent de résoudre de nombreuse tâches. Ensuite, nous allons utiliser les propriétés intrinsecque de ces proto pour pourvoir nous affranchir de l’utilisation des snapshots. Stabilisation instantanée efficace
PriseEnMain(r) est plus faible Notre transformateur Pour tout algorithme à vagues P mono-initiateur avec décision à l’initiateur, on a : Stabilisant(P) ⇒ ∃ PriseEnMain(r) ⇍ PriseEnMain(r) est plus faible Ce type de prédicat existe aussi intrinsequement dans les solutions auto car comme on répéte les exécutions de service. On doit assurer que le prochain service sera exécuté seulement après que le précédent soit terminé. Donc la propriété de stabilisation dans les proto de service implique l’existence d’un tel prédicat. La réciproque est qu’en a elle fausse. Assurer que la racien reprend la main en un temps fini malgré la configuration initial quelconque n’assure pas la stabilisation du protocole. Nous verrons par la suite un exemple de protocole … Il faut noté qu’en utilisant ce prédicat de prise en main, nous avons montrer que tout proto auto de service mono initiateur avec décision à la racine pouvais être trivialement transformer en proto snap . (interblocage du la config initiale quelconque) Stabilisation instantanée efficace
Stabilisation instantanée efficace La propriété étant plus simple en théorie, l’est aussi en pratique : Par exemple À gauche on a le code de notre deuxième sol snap Et à droite, le code de notre protocole modifié Stabilisation instantanée efficace
Aucun calcul d’état global ⇒ Efficacité HC93 Opodis’04 SSS’05 DFST Mémoire Θ(log n) Θ(n log n) Θ(log n) Θ(log n) Exécution(rondes) Θ(Dn) Θ(n) Θ(n²) Θ(n) Exécution(étapes) ∞ Θ(n²) Θ(∆n3) Θ(∆n3) Equité F I I I Surcoût Θ(1) Θ(1) Θ(n) Θ(1) Stabilisation instantanée efficace
Extention de la circulation de jeton Extention directe : exclusion mutuelle auto-stabilisante efficace Sûreté vérifiée dès le 3ème jeton Avec une légère modification : Exclusion mutuelle instantanément stabilisante Spécification : Tout processeur demandeur finit par entrer en SC (Vivacité) Si un processeur demandeur est en SC alors il est le seul en SC (Sûreté) Stabilisation instantanée efficace
Stabilisation instantanée efficace Conclusion Simplicité Solution avec un démon distribué inéquitable Efficacité Extension : Exclusion mutuelle instantanément stabilisante Avantanges Stabilisation instantanée efficace
Stabilisation instantanée efficace Perspectives Peut-on obtenir un transformateur efficace pour des classes de protocoles plus larges ? Existe-t-il une propriété plus faible que la propriété de « prise en main » permettant d’obtenir un transformateur efficace ? Peut-on obtenir la propriété de « prise en main » automatiquement ? Stabilisation instantanée efficace
Stabilisation instantanée efficace