6 7

OPODIS 2004, December 15-17 2004, Grenoble (France)
Snap-Stabilizing Depth-First Search on
Arbitrary Networks
Alain Cournier, Stéphane Devismes, Franck Petit, and Vincent Villain
What is Depth-First Search?
Root
R
Applications of Depth-First Search?
•
•
•
•
•
Mutual Exclusion
Spanning Tree Computation
Constraint Programming
Routing
…
Self- and Snap- Stabilisation
Self-Stabilisation, Dijkstra (1974)
A self-stabilizing system, regardless of the initial state of the processors,
is guaranteed to converge to the intended behavior in finite time.
Remark: Self-Stabilisation is a general technique allowing to design
systems tolerating transient failures.
Snap-Stabilisation Bui, Datta, Petit, and Villain (1999)
A snap-stabilizing system, regardless of the initial state of the processors,
always behaves according to its specifications.
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
1
2
R
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Data Structures
Successor pointor:
Parent pointor:
Visited Set:
Idle
Pointing
Done
{1,2,3}
From a « good » initial configuration
1
{5,6,7,3,2,4,8,9,1}
2
3
{5,6,7,3,2}
R
5
6
7
{5,6,7,3,2,4,8,9}
{5,6}
{5,6,7,3,2,4,8,9,1}
{5,6,7,3,2,4,8,9}
{5}
4
{5,6,7,3,2,4,8}
{5,6,7,3,2,4}
{5,6,7,3,2,4,8}
{5,6,7,3}
{5,6,7,3,2}
8
{5,6,7,3,2,4,8}
{5,6,7}
{5,6,7,3,2,4,8,9}
{5,6,7,3,2,4,8}
9
{5,6,7,3,2,4,8,9}
Arbitrary Configuration
Done Processor
1
2
3
5
{3,4}
{2,3}
R
7
6
{6,8}
11
4
12
9
8
{7}
{5,7}
10
{7,8}
13
{5,7,10}
14
15
{6,8,11}
16
{5,7,10,15}
Abnormal Traversals
17
18
How to correct Abnormal
Traversals?
Error Detection
5
6
{6}
Abnormal Root
9
8
7
{6,7}
{6,7,8}
Error Correction
Cleaning the successive
Abnormal Root of each
Abnormal Traversal
Snap?
The Root
is nowAction
enabled to
Starting
initiates the protocol
1
2
3
{3,4}
{2,3}
R
7
6
{6,8}
11
5
4
12
{7,8,9}
{7,8}
13
10
9
8
{7}
{5,7}
14
{5,7,10}
{7,8,9,16}
15
{6,8,11}
16
{5,7,10,15,17,18,16}
{5,7,10,15}
17
18
{5,7,10,15,17,18,16}
{5,7,10,15,17} {5,7,10,15,17,18}
{5,7,10,15,17,18,16}
Unfairness?
1
2
3
4
5
{3,4}
6
R
7
12
9
8
10
{7,8}
{7}
11
{5,7}
13
{5,7,10}
14
15
16
{5,7,10,15}
17
{5,7,10,15,17,18,1
18
{5,7,10,15,17} {5,7,10,15,17,18}
{5,7,10,15,17,18,16}
Conclusion
•
Snap-Stabilizing Protocol for Arbitrary Networks
•
Works under an Unfair Daemon
•
Time Complexity:
Delay: O(N²) steps , O(N) rounds
DFS-Wave: O(N²) steps, O(N) rounds
•
Space Requirement:
O(N ×log(N)) per processors
Perspectives
•
Finding a solution with a lower memory requirement
•
Finding a solution without using ids
•
Finding a Transformer working with an unfair daemon