Distributed Queuing in Dynamic Networks Costas Busch Louisiana State University (Joint work with Gokarna Sharma) FOMC 2013 1
Dynamic Networks Fabian Kuhn, Nancy Lynch, Rotem Oshman STOC 2010 Communication Round (Broadcast Step) • Each node decides what value of size O(log n) bits to broadcast • Then, adversary decides which links are active (connected graph) • Node broadcasts message 2
T-stable Networks For any period of time T there is a stable connected spanner subgraph Adversary as before, but spanner subgraph does not change for T steps 3
Enqueuing Requests (r, ID) Round Node id (step) Requests are totally ordered Assume requests with order 1,2,3,…,k 4
Enqueuing Requests Initially nil head 9 5
Enqueuing Requests Initially 7 3 3 7 1 1 2 8 8 2 nil head 4 4 9 5 5 9 6 6 10 1 0 6
Final Queue 7 3 1 2 8 head 4 5 nil 9 6 10 7
Two algorithms On Basic Adversarial Model: O(nk) n: nodes in graph k: enqueue requests On 2T-stable Model: O(nk/min(a,T)) a: expresses the number of min remaining active requests per 2T period 8
Basic Algorithm Assume requests with order 1,2,3,…,k Min order (1) reaches all nodes cycle 1 Enqueue the 1 st request 9
Basic Algorithm Assume requests with order 1,2,3,…,k Min order (2) reaches all nodes cycle 2 Enqueue the 2 nd request 10
Basic Algorithm Assume requests with order 1,2,3,…,k Min order (3) reaches all nodes cycle 3 Enqueue the 3 rd request 11
Basic Algorithm Assume requests with order 1,2,3,…,k Min order (k) reaches all nodes cycle k Enqueue the k-th request 12
Execution Example Initially 7 3 3 7 1 1 2 8 8 2 nil head 4 4 9 5 5 9 6 6 10 1 0 13
End of Cycle 1 Initially 7 1 1 3 3 7 1 1 1 1 1 2 8 8 1 2 1 nil 1 1 1 head 4 1 4 9 1 5 5 9 1 1 1 6 1 6 10 1 1 0 1 1 14
End of Cycle 1 nil 7 3 3 7 1 2 8 8 2 head 4 4 9 5 5 9 6 6 10 1 0 15
End of Cycle 2 nil 7 2 3 3 2 7 2 2 2 1 2 2 8 8 2 2 2 2 2 head 4 4 2 9 2 5 5 9 2 2 2 6 2 6 10 1 2 0 2 2 16
End of Cycle 2 7 3 3 7 2 nil 1 2 8 8 2 2 head 4 4 9 5 5 9 6 6 10 1 0 17
Final Queue (end of cycle k=10) 7 3 1 2 8 head 4 5 nil 9 6 10 18
Propagation Set of nodes Set of nodes without 1 that have 1 1 1 1 1 1 1 1 1 1 1 19
Propagation Set of nodes Set of nodes without 1 that have 1 1 1 1 1 1 1 1 1 1 1 1 After a step 20
Duration of Cycle Each cycle requires n steps: In each step a new node in graph receives smallest ordered request Total time = #cycles X cycle_duration = k n 21
Dynamic enqueuing requests Enqueue request (r, ID) arriving at a cycle will be served no later than b cycles b: number of current active requests possibly ordered before (r, ID) 22
Algorithm for 2T-stable graphs Assume requests with order 1,2,3,…,k > T 1, 2, …, T cycle 1 Enqueue the 1st smallest set of T requests 23
Algorithm for 2T-stable graphs Assume requests with order 1,2,3,…,k > T T+1, T+2, …, 2T cycle 2 Enqueue the 2 nd smallest set of T requests 24
Algorithm for 2T-stable graphs Assume requests with order 1,2,3,…,k > T 2T+1, 2T+2, …, 3T cycle 3 Enqueue the 3 rd smallest set of T requests 25
Algorithm for 2T-stable graphs Assume requests with order 1,2,3,…,k > T (k/T-1)T+1, (k/T- 1)T+2, …, T cycle k/T Enqueue the last (k/T)th set of T requests 26
Algorithm for 2T-stable graphs At the end of cycle i+1 each node receives requests with order: iT+1, iT+2, …, (i+1)T N ode with request of order j in [iT+1, …, (i+1)T -1] will point next to the node which issued request with order j+1 Node with order (i+1)T becomes tail. 27
Inside a cycle Initially 7 3 3 7 1 1 2 8 8 2 nil head 4 4 9 5 5 9 6 6 10 1 0 28
Inside a cycle End of cycle 1 (T=5) 7 1 2 3 1 2 3 5 1 2 3 5 4 4 3 5 4 1 2 1 2 8 1 2 3 5 nil 3 4 5 4 1 2 3 5 1 2 4 3 1 2 5 4 4 1 2 5 3 5 9 3 5 4 1 2 4 3 5 4 6 1 2 10 3 5 4 29
Inside a cycle End of cycle 1 (T=5) 7 3 2 4 1 2 8 3 nil head 5 4 5 9 6 10 30
Inside a cycle Cycle 2 (T=5) 7 3 7 1 2 8 8 nil head 4 9 5 9 6 6 10 1 0 31
Inside a cycle End of Cycle 2 (T=5) 7 6 7 3 6 7 8 6 7 1 8 1 0 9 0 9 8 1 0 9 1 2 6 7 8 6 7 8 1 8 0 9 1 6 7 0 nil 9 8 1 6 7 0 9 8 6 7 1 4 0 9 6 7 5 8 1 9 8 0 9 1 6 7 0 9 8 1 0 9 6 6 7 10 8 1 0 9 32
Inside a cycle End of Cycle 2 (T=5) 7 3 8 1 2 8 9 head 4 6 5 1 nil 9 0 7 6 10 33
Pipelining t=1 1 2 3 5 4 34
Pipelining t=1 1 2 1 3 5 4 35
Pipelining t=2 1 2 1 3 5 4 36
Pipelining t=2 1 2 1 1 2 3 5 4 37
Pipelining t=3 1 2 1 2 1 3 5 4 38
Pipelining t=3 1 2 1 2 1 1 2 3 3 5 4 39
Pipelining t=4 1 2 1 2 1 2 1 3 3 5 4 40
Pipelining t=4 1 2 1 2 1 2 1 2 3 4 1 3 3 5 4 41
Pipelining t=5 1 2 1 2 1 2 1 2 1 3 3 3 5 4 4 42
Pipelining t=5 1 2 1 2 1 2 1 2 1 1 4 3 2 5 3 3 3 5 4 4 43
Pipelining t=6 1 2 1 2 1 2 1 2 1 2 1 3 3 3 3 5 5 4 4 4 44
Pipelining t=6 1 2 1 2 1 2 1 2 1 2 1 4 2 3 5 3 3 3 3 5 5 4 4 4 45
Pipelining t=7 1 2 1 2 1 2 1 2 1 2 1 2 3 3 3 3 3 5 5 5 4 4 4 4 46
Pipelining t=7 1 2 1 2 1 2 1 2 1 2 1 2 3 5 4 3 3 3 3 3 5 5 5 4 4 4 4 47
Pipelining t=8 1 2 1 2 1 2 1 2 1 2 1 2 3 3 3 3 3 3 5 5 5 5 4 4 4 4 4 48
Pipelining t=8 1 2 1 2 1 2 1 2 1 2 1 2 4 5 3 3 3 3 3 3 5 5 5 5 4 4 4 4 4 49
Pipelining t=9 1 2 1 2 1 2 1 2 1 2 1 2 3 3 3 3 3 3 5 5 5 5 5 4 4 4 4 4 4 50
Pipelining t=9 1 2 1 2 1 2 1 2 1 2 1 2 5 3 3 3 3 3 3 5 5 5 5 5 4 4 4 4 4 4 51
Pipelining t=10=5+5 1 2 1 2 1 2 1 2 1 2 1 2 3 3 3 3 3 3 5 5 5 5 5 5 4 4 4 4 4 4 52
Collisions from other paths t=1 3 1 2 53
Collisions from other paths t=2 3 3 1 1 2 2 54
Collisions from other paths t=3 3 1 3 1 1 1 2 2 2 55
Collisions from other paths t=4 3 3 1 3 1 1 1 2 3 1 2 2 2 56
Collisions from other paths t=5 3 3 3 1 1 3 1 1 1 2 1 3 2 1 2 2 2 57
Collisions from other paths t=6 3 3 1 3 2 1 3 1 1 1 1 2 2 1 3 2 1 1 2 2 2 58
Collisions from other paths t=7 3 3 3 2 3 2 1 1 3 1 1 1 1 2 2 2 3 1 3 2 1 1 2 1 2 2 59
Collisions from other paths t=8 = 5+3 3 2 3 3 2 3 3 2 1 1 3 1 1 1 1 2 2 2 3 1 3 2 2 1 3 1 2 1 2 1 2 60
Propagation Set of nodes Set of nodes without 1 that have 1 1 1 1 1 1 1 1 1 T nodes 1 1 61
Propagation Set of nodes Set of nodes without 1 that have 1 1 1 1 1 1 1 1 1 1 1 1 T nodes 1 1 After T+1 time steps 62
Propagation Set of nodes Set of nodes without 2 that have 2 2 2 2 2 2 2 2 2 T nodes 2 2 63
Propagation Set of nodes Set of nodes without 2 that have 2 2 2 2 2 2 2 2 2 2 2 2 T nodes 2 2 After T+1 time steps 64
Propagation Set of nodes Set of nodes without 2 that have 2 2 2 2 2 1 2 2 2 2 1 1 1 2 2 2 T nodes 2 2 After T+2 time steps (due to possible collision with 1) 65
Propagation Set of nodes 1 1 Set of nodes without 2 1 that have 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 T nodes 2 2 After T+2 time steps (due to possible collision with 1) 66
Propagation Set of nodes Set of nodes without 3 that have 3 3 3 3 3 1 2 2 2 2 3 1 1 1 3 3 3 3 3 3 T nodes 3 3 After T+3 time steps (due to possible collision with 1 or 2) 67
Propagation Set of nodes 1 1 Set of nodes without 3 1 that have 3 3 3 3 3 2 2 2 3 1 1 1 3 3 3 3 3 3 T nodes 3 3 2 1 or 2 can originate from other nodes as well 68
Propagation Set of nodes Set of nodes without T that have T T T T T T T T T T T T T nodes T T After 2T time steps (Due to possible collision with 1,2,3,..,T-1) 69
Propagation Progress Period = 2T steps After a period, the T smallest requests propagate to at least T new nodes Cycle = n/T periods After a cycle, every node knows the T smallest requests 70
Total time #cycles * cycle_duration = #cycles * periods_per_cycle * period_duration = k/T * (n/T) * 2T = O(kn/T) 71
Recommend
More recommend