Title: SnapStabilization in MessagePassing Systems
1Snap-Stabilization in Message-Passing Systems
- Sylvie Delaët (LRI)
- Stéphane Devismes (CNRS, LRI)
- Mikhail Nesterenko (Kent State University)
- Sébastien Tixeuil (LIP6)
2Message-Passing Model
- Network bidirectionnal and fully-connected
- Communications by messages
- Links asynchronous, fair, and FIFO
- Ids on processes
- Transient faults
3Stabilizing Protocols
- Self-Stabilization Dijkstra, 1974
c1
c3
c2
c5
c4
c6
c7
Convergence
time
correct behavior
correct behavior
uncorrect behavior
Transient Faults
Arbitrary initial state
4Stabilizing Protocols
- Snap-Stabilization Bui et al, 1999
c1
c3
c2
c5
c4
c6
c7
time
correct behavior
correct behavior
uncorrect behavior
Transient Faults
Arbitrary initial state
5Related Works in message-passing(reliable
communication in self-stabilization)
?
ltHow old are you, Captain?gt
?
ltIm 21gt
ltIm 12gt
ltIm 60gt
- Gouda Multari, 1991
- Deterministic Unbounded Capacity gt Unbounded
Counter - Deterministic Bounded Capacity gt Bounded
Counter - Afek Brown, 1993
- Probabilistic Unbounded Capacity Bounded
Counter
6Related Works in message-passing
(self-stabilization)
- Varghese, 1993
- Deterministic Bounded Capacity
- Katz Perry, 1993
- Unbounded Capacity, deterministic, infinite
counter - Delaët et al
- Unbounded Capacity, deterministic, finite memory
- Silent tasks
7Related Works (snap-stabilization)
- Nothing in the Message-Passing Model
- Only in State Model
- Locally Shared Memory
- Composite Atomicity
- Cournier et al, 2003
8Snap-Stabilization in Message-Passing Systems
9Case 1 unbounded capacity links
- Impossible for safety-distributed specifications
10Safety-distributed specification
A
p
B
q
Example Mutual Exclusion
11Safety-distributed specification
sp
A
p
m1
m2
m3
m4
m5
sq
B
q
m1
m2
m3
m4
12Safety-distributed specification
sp
A
p
m1
m2
m3
m4
m5
sq
B
q
m1
m2
m3
m4
13Case 2 bounded capacity links
- Problem to solve Reliable Communication
- Starting from any configuration, if Tintin sends
a question to Captain Haddock, then - Tintin eventually receives good answers
- Tintin takes only the good answers into account
?
?
14Case 2 bounded capacity links
- Case Study Single-Message Capacity
0 or 1 message
0 or 1 message
15Case 2 bounded capacity links
- Sequence number State ? 0,1,2,3,4
p
q
lt0,NeigStatep,Qp,Apgt
lt1,NeigStatep,Qp,Apgt
ltStateq,0,Qq,Aqgt
Until Statep 4
Statep
Stateq
?
0
1
?
NeigStatep
NeigStateq
?
?
0
16Case 2 bounded capacity links
p
q
lt2,?,?,?gt
lt3,NeigStatep,Qp,Apgt
lt?,0,?,?gt
lt?,1,?,?gt
lt?,2,?,?gt
ltStateq,3,Qq,Aqgt
Statep
Stateq
?
2
3
4
0
1
NeigStatep
NeigStateq
1
?
2
3
17Generalizations
- Arbitrary Bounded Capacity
- 2xCmax3 values
Cmax values
p
q
Cmax values
1 value
1 value
18Generalizations
- PIF in fully-connected network
m
Am
m
m
Am
Am
19Application
- Mutual Exclusion in a fully-connected
identified networkusing the PIF
20Mutual Exclusion
- Specification
- Any process that requests the CS enters in the CS
in finite time (Liveness) - If a requesting process enters in the CS, then it
executes the CS alone (Safety) - N.b. Some non-requesting processes may be
initially in the CS
21Principles (1/6)
- Let L be the process with the smallest ID
- L decides using ValueL which is authorized to
access the CS - if ValueL 0, then L is authorized
- if ValueL i, then the ith neighbor of L is
authorized - When a process learns that it is authorized by L
to access the CS - It ensures that no other process can execute the
CS - It executes the CS, if it requests it
- It notifies L when it terminates Step 2 (so that
L increments ValueL)
22Principles (2/6)
- Each process sequentially executes 4 phases
infinitely often - A requesting process p can enter in the CS only
after executing Phases 1 to 4 consecutively - The CS is in Phase 4
23Principles (3/6)
- Process p evaluates the IDs
Id?
Phase1
5
3
Leader2
3
Id?
Id?
8
2
2
8
24Principles (4/6)
- Process p asks if Valueq p to each other
process q
Ok?
Phase2
1
5
3
Leader2
No
Value0
Oktrue
Ok?
2
3
Ok?
Yes
No
1
1
2
2
2
8
3
3
Value2
Value3
25Principles (5/6)
- If Winner(p) then p broadcasts EXIT to every
other process
Winner(5)true
Winner(3)?
Exit
Phase3
Phase?
Phase1
1
5
3
Leader2
Leader?
Ok
Exit
Ok?
Oktrue
2
3
Exit
Value0
Winner(2)?
Winner(8)?
Ok
Ok
Phase?
Phase1
Phase?
Phase1
1
1
2
Leader?
2
Leader?
2
8
Ok?
Ok?
3
3
Value3
Value2
26Principles (6/6)
- If Winner(p) then CS If p?L, then p broadcasts
ExitCS, else p increments Valuep
Winner(5)true
Winner(3)?
ExitCS
Phase1
Phase4
ltCSgt
1
5
3
Leader?
Leader2
Ok
Ok?
ExitCS
Oktrue
2
Value0
3
ExitCS
Winner(2)?
Winner(8)?
Ok
Ok
Phase1
Phase1
1
1
2
2
Leader?
Leader?
2
8
Ok?
Ok?
3
3
Value3
Value2
Value3
27Conclusion
- Snap-Stabilization in message-passing is no more
an open question
28Extensions
- Apply snap-stabilization in message-passing to
- Other topologies (tree, arbitrary topology)
- Other problems
- Other failure patterns
- Space requirement
29Thank you