Mutual Exclusion and Leader Election

CPSC 689: Discrete Algorithms
for Mobile and Wireless Systems
Spring 2009
Prof. Jennifer Welch
Lecture 28
 Topic:
 Distributed Primitives Using Link Reversal
 Sources:




Walter, Welch & Vaidya
Malpani, Welch & Vaidya
Ingram, Shields, Walter & Welch
MIT 6.885 Fall 2008 slides
Discrete Algs for Mobile Wireless Sys
2
Mutual Exclusion in MANETs [WWV]
 Problem statement:
 Assume a single connected component
 No two nodes are ever in the critical section
(CS) simultaneously
 If topology changes eventually cease, then
every request to enter the CS is eventually
granted.
Discrete Algs for Mobile Wireless Sys
3
Mutual Exclusion
 Raymond's (1989) ME algorithm:
 unique token that traverses the network over a
spanning tree
 node with token can enter CS
 nodes that want to enter CS send requests toward the
token holder
 What happens if links disappear?
 Give a logical direction to all the links, not just those in
a spanning tree, to get more redundancy
 Use link reversal ideas with a twist: token-holder is
destination (of request messages), but different nodes
are token-holder at different times
Discrete Algs for Mobile Wireless Sys
4
ME Algorithm [WWV]



Heights are triples (partial reversal, as in [GB])
Each node keeps a queue of ids of neighbors that have sent it requests
Each node identifies one of its outgoing links as its next link.
1 3
• node 1 requests
3
0
3 2
1
1
2
2
• node 3 requests
• node 2 requests
• node 0 leaves the CS,
forwards the token to 3,
and sends a req. to 3 on
behalf of 2. When 3
gets the token, it lowers
its height…
Discrete Algs for Mobile Wireless Sys
5
ME Algorithm with No Link Failures
130
3
30
0
2
2
1
1
node 0
forwards
token to 2,
etc.
1
3
node 3 forwards
token to 1, follows
it with a request
0
2
2
1
1 3
2
3
0
2
2
2
node 3 enters
CS since
it is at head of
queue; when
done, forwards
token to 0
2
node 1 enters CS since
it is at head of queue; when
done, forwards token to 3
30
3
0
2
1
2
2
Discrete Algs for Mobile Wireless Sys
6
ME Algorithm with Failures
1 3
3
0
3 2
1
1
2
2
0 removes 3
from queue;
3 raises ht.,
purges queue,
sends req. on
new next to 1
3
3
0
2
2
1
1 3
A node that loses its last outgoing
link either due to link failure or due
to nbr’s height change does a
partial reversal to raise its height.
Queues must be adjusted.
2
1 raises ht., sends req.
on new next to 2
3
0
2
1
1 3
Discrete Algs for Mobile Wireless Sys
3
2
2 1
7
Correctness of ME Algorithm
 Safety: There is never more than one node
in the CS at a time.
 The unique token ensures this.
 Liveness: Eventually every request to
enter the CS is granted.
 To prove this, we use a "variant function"
argument…
Discrete Algs for Mobile Wireless Sys
8
Request Chain and Variant Function
In this state, node 1’s request chain is:
3
0
node 1, node 3, node 0.
I.e., the red path.
3 2
Node 1’s variant function is [1,1,1].
1
2
Node 2’s variant function is [1,2].
1
2
Node 3’s variant function is [2,1].
Given a node p1’s request chain, define a variant function:
1 3
p1
p2
,
pos. of p1
in p1’s
queue
p3
,
pos. of p1
in p2’s
queue
pm
pos. of p2
in p3’s
queue
,
,
pos. of pm-1
in pm’s
queue
Discrete Algs for Mobile Wireless Sys
If a request
message is
in transit
from pm,
then append
n+1.
9
Correctness of ME Algorithm
Assume finite number of link changes.
 finite number of calls to RaiseHt
 eventually DAG is token-oriented and stays that
way
 eventually node i’s request chain includes the
token holder
 variant function for a particular request keeps
decreasing, since nodes don’t stay in CS
forever and thus token is sent and received
 eventually variant function reaches [1] and
request is granted
Discrete Algs for Mobile Wireless Sys
10
Leader Election in MANETs
 Problem Statement:
 Any connected component whose topology is static
sufficiently long eventually contains a unique leader
 [MWV] paper modified TORA:
 Key observation: when a node detects a partition from
the destination (current leader), instead of initiating
procedure to quiesce, it elects itself
 Add a 6th component to the height tuple of TORA
 But resulting algorithm does not handle concurrent
topology changes
 [ISWW] uses a 7-tuple for height…
Discrete Algs for Mobile Wireless Sys
11
LE Algorithm: Height Data Structure
 reference level (RL):
 tau: either 0 or time when current search for alternative
path to leader was initiated
 oid: either 0 or id of node that started current search
 r: either 0 (nonreflected) or 1 (reflected)
 delta: integer to ensure links are directed
appropriately to neighbors with same RL
 leader pair (LP):
 nlts: negative of time when current leader was elected
 lid: id of current leader
 id: node's unique identifier
Discrete Algs for Mobile Wireless Sys
12
LE Algorithm: Topology Changes
 When link to j goes down:
 if no neighbors then elect self
 else if sink then
 start new RL
 send new height to all neighbors
 When link to j comes up:
 send height to j
Discrete Algs for Mobile Wireless Sys
13
LE Algorithm: Response to New
Height Message
 if LP is same then
 if sink then
 if all neighbors have same RL then
 if common RL has r = 0 then reflect RL
 else if common RL has r = 1 and oid= i then
elect self
 else start new RL
 else propagate largest RL
 else // LPs are not same
 adopt LP if priority
 send new height to all neighbors
Discrete Algs for Mobile Wireless Sys
14
LE Algorithm: Subroutines
 elect self:
 set height to ((0,0,0),0,(-t,i),i), where t is current time
 reflect RL:
 set r to 1 and delta to 0
 propagate largest RL (partial reversal):
 set RL to largest neighboring RL, set delta to 1 less than
smallest neighboring delta associated with the new RL
 start new RL:
 set RL to (t,id,0) and delta to 0, where t is current time
 adopt LP if priority:
 if new LP has newer time or (equal time and smaller lid) then
set RL to new RL, delta to one larger than new delta, and LP
to new LP
Discrete Algs for Mobile Wireless Sys
15
Example Execution
((0,0,0),4,(-1,H),A)
((0,0,0),3,(-1,H),B)
B
A
((0,0,0),2,(-1,H),D)
C ((0,0,0),3,(-1,H),C)
D
((0,0,0),2,(-1,H),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((0,0,0),2,(-1,H),F)
((0,0,0),1,(-1,H),G)
at time 5
Discrete Algs for Mobile Wireless Sys
16
Example Execution: Start New RL
((0,0,0),4,(-1,H),A)
((0,0,0),3,(-1,H),B)
B
A
((0,0,0),2,(-1,H),D)
C ((0,0,0),3,(-1,H),C)
D
((0,0,0),2,(-1,H),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((0,0,0),2,(-1,H),F)
((5,G,0),0,(-1,H),G)
Discrete Algs for Mobile Wireless Sys
17
Example Execution: Propagate
Largest RL
((0,0,0),4,(-1,H),A)
((0,0,0),3,(-1,H),B)
B
A
((5,G,0),-1,(-1,H),D)
C ((0,0,0),3,(-1,H),C)
D
((5,G,0),-1,(-1,H),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((5,G,0),-1,(-1,H),F)
((5,G,0),0,(-1,H),G)
Discrete Algs for Mobile Wireless Sys
18
Example Execution: Propagate
Largest RL
((0,0,0),4,(-1,H),A)
((5,G,0),-2,(-1,H),B)
B
A
((5,G,0),-1,(-1,H),D)
C ((5,G,0),-2,(-1,H),C)
D
((5,G,0),-1,(-1,H),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((5,G,0),-1,(-1,H),F)
((5,G,0),0,(-1,H),G)
Discrete Algs for Mobile Wireless Sys
19
Example Execution: Reflect RL
((5,G,1),0,(-1,H),A)
((5,G,0),-2,(-1,H),B)
B
A
((5,G,0),-1,(-1,H),D)
C ((5,G,0),-2,(-1,H),C)
D
((5,G,0),-1,(-1,H),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((5,G,0),-1,(-1,H),F)
((5,G,0),0,(-1,H),G)
Discrete Algs for Mobile Wireless Sys
20
Example Execution: Propagate
Largest RL
((5,G,1),0,(-1,H),A)
((5,G,1),-1,(-1,H),B)
B
A
((5,G,0),-1,(-1,H),D)
C ((5,G,1),-1,(-1,H),C)
D
((5,G,0),-1,(-1,H),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((5,G,0),-1,(-1,H),F)
((5,G,0),0,(-1,H),G)
Discrete Algs for Mobile Wireless Sys
21
Example Execution: Propagate
Largest RL
((5,G,1),0,(-1,H),A)
((5,G,1),-1,(-1,H),B)
B
A
((5,G,1),-2,(-1,H),D)
C ((5,G,1),-1,(-1,H),C)
D
((5,G,1),-2,(-1,H),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((5,G,1),-2,(-1,H),F)
((5,G,0),0,(-1,H),G)
Discrete Algs for Mobile Wireless Sys
22
Example Execution: Elect Self
((5,G,1),0,(-1,H),A)
((5,G,1),-1,(-1,H),B)
B
A
((5,G,1),-2,(-1,H),D)
C ((5,G,1),-1,(-1,H),C)
D
((5,G,1),-2,(-1,H),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((5,G,1),-2,(-1,H),F)
((0,0,0),0,(-14,G),G)
at time 14
Discrete Algs for Mobile Wireless Sys
23
Example Execution: Adopt New LP
((0,0,0),3,(-14,G),A)
((0,0,0),2,(-14,G),B)
B
A
((0,0,0),1,(-14,G),D)
C ((0,0,0),2,(-14,G),C)
D
((0,0,0),1,(-14,G),E) E
((0,0,0),0,(-1,H),H)
H
F
G
((0,0,0),1,(-14,G),F)
((0,0,0),0,(-14,G),G)
Discrete Algs for Mobile Wireless Sys
24
Correctness Proof
 Relies on several invariant predicates:
 properties of the global state of the system that are
always true
 Show that if topology changes cease, then
eventually a leader-oriented DAG is obtained in
each connected component
 Show that a new leader is not elected
"unnecessarily":
 if a component is a leader-oriented DAG and one
topology change occurs, then no node remaining in
same component as the old leader elects itself
Discrete Algs for Mobile Wireless Sys
25
Leader-Oriented DAG
 Lemma 1: Any node that adopts a LP with
timestamp after the last topology change never
subsequently becomes a sink.
 Lemma 2: Any node that elects itself after the last
topology change never subsequently becomes a
sink.
 Lemma 3: No node elects itself more than once
after the last topology change.
 Lemma 4: Every node starts a finite number of
new RLs after the last topology change.
Discrete Algs for Mobile Wireless Sys
26
Leader-Oriented DAG
 Lemma 5: Eventually every node in the
component has the same LP.
 Lemma 6: Eventually no messages are in
transit.
 Lemma 7: Eventually every node has an
accurate view of its neighbors' heights.
Discrete Algs for Mobile Wireless Sys
27
Leader-Oriented DAG
 Theorem 8: Eventually the component is a leader-oriented
DAG.
 Proof Sketch:
 Eventually all nodes have same LP (-s,L).
 Eventually every node has an accurate view of its neighbors'
heights.
 Properties tell us that





Node L must be in the component.
L and only L has RL (0,0,0) and 0 delta
no node has a negative RL
L has smallest height, so no outgoing links
every node other than L has an outgoing link
 Since cycles are impossible, L-oriented DAG.
Discrete Algs for Mobile Wireless Sys
28
Leader Stability
 Theorem 9: Suppose G' is an L-oriented
DAG with no messages in transit and a link
goes down at time t. Let resulting
component containing L be G. Then, as
long as no further topology changes occur,
no node in G elects itself.
 Proof Sketch: Suppose node u becomes a
sink at time t and starts new RL (t,u,0).
Discrete Algs for Mobile Wireless Sys
29
Leader Stability
 Suppose in contradiction some node elects itself
at time te.
 Claim 2: No new RL prefix (oid and timestamp) is
started between t and te.
 Thus the node elected at te must be u.
 Let A be nodes in G with a directed path to L at
time t (after the link goes down) and B be the
remaining nodes.
 L is in A and u is in B.
 Claim 3: No node in A becomes a sink between t
and te.
Discrete Algs for Mobile Wireless Sys
30
Leader Stability
 At te, all neighbors of u have RL (t,u,1).
 By a property, there are no "height tokens" in the
system at te with RL (t,u,0)
 a node cannot have an unreflected RL while one of its
ancestors is reflected
 By another property, every node with RL (t,u,1)
has all its neighbors with RL (t,u,1).
 But then some node with RL (t,u,1) is a neighbor
of some node in A, which cannot have RL (t,u,1)
since it never becomes a sink. Contradiction.
Discrete Algs for Mobile Wireless Sys
31