Snap-Stabilizing Depth-First Search on Arbitrary Networks Alain Cournier, Stéphane Devismes, Franck Petit, and Vincent Villain OPODIS 2004, December , Grenoble (France)
What is Depth-First Search? Root R
Applications of Depth-First Search? Mutual Exclusion Spanning Tree Computation Constraint Programming Routing …
Self- and Snap- Stabilisation A self-stabilizing system, regardless of the initial state of the processors, is guaranteed to converge to the intended behavior in finite time. Self-Stabilisation, Dijkstra (1974) A snap-stabilizing system, regardless of the initial state of the processors, always behaves according to its specifications. Snap-Stabilisation Bui, Datta, Petit, and Villain (1999) Remark: Self-Stabilisation is a general technique allowing to design systems tolerating transient failures.
More Precisely… Let T be a task and SPt a specification of T. Let P be a protocol. P is snap-stabilizing for SPt iff: 1.A particular action of P will be executed, 2.The result obtained from this particular action satisfies SPt.
State Model Communication: Local Shared Memory Computation: Distributed Fairness: Weakly fair, Unfair Time Complexity: Step and Round
Related Works Self-Stabilisation Area: Huang and Chen (1993) Johnen and Beauquier (1995) Petit and Villain (1997) Datta, Johnen, Petit, and Villain (2000) Petit (2001)
Related Works Snap-Stabilisation Area: Petit and Villain (1999) for tree networks Cournier, Datta, Petit, and Villain (2003), Transformer
There does not exist any solution using an unfair daemon
Our Solution
Identified Rooted Networks R
Data Structures Successor pointor: Parent pointor: Visited Set: {1,2,3} IdlePointingDone
From a « good » initial configuration {5} {5,6} {5,6,7} {5,6,7,3,2,4,8,9,1} {5,6,7,3,2} 6 7 {5,6,7,3,2,4} 4 {5,6,7,3,2,4,8} {5,6,7,3} {5,6,7,3,2,4,8} {5,6,7,3,2} {5,6,7,3,2,4,8} {5,6,7,3,2,4,8,9} {5,6,7,3,2,4,8,9,1} R
{7}{7,8} {5,7} {5,7,10} {5,7,10,15} Arbitrary Configuration {3,4} {2,3} {6,8} {6,8,11} Done Processor Abnormal Traversals R
How to correct Abnormal Traversals?
Error Detection {6}{6,7} 6 {6,7,8} Abnormal Root
Error Correction Cleaning the successive Abnormal Root of each Abnormal Traversal
{5,7} {5,7,10} {5,7,10,15} {2,3} {6,8} {6,8,11} {3,4} {5,7,10,15,17} 18 {5,7,10,15,17,18} {5,7,10,15,17,18,16} {7} {5,7,10,15,17,18,16} Starting Action {7,8} {5,7,10,15,17,18,16} {7,8,9} 9 {7,8,9,16} 10 The Root is now enabled to initiates the protocol Snap? R
{5,7} {5,7,10} {5,7,10,15} {3,4} {5,7,10,15,17} 18 {5,7,10,15,17,18}{5,7,10,15,17,18,16} {7} {7,8} {5,7,10,15,17,18,16} 9 10 Unfairness? R
Conclusion Snap-Stabilizing Protocol for Arbitrary Networks Works under an Unfair Daemon Space Requirement: O(N ×log(N)) per processors Time Complexity: Delay: O(N²) steps, O(N) rounds DFS-Wave: O(N²) steps, O(N) rounds
Perspectives Finding a solution with a lower memory requirement Finding a Transformer working with an unfair daemon Finding a solution without using ids