distributed queuing in dynamic networks costas busch
play

Distributed Queuing in Dynamic Networks Costas Busch Louisiana - PowerPoint PPT Presentation

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


  1. Distributed Queuing in Dynamic Networks Costas Busch Louisiana State University (Joint work with Gokarna Sharma) FOMC 2013 1

  2. 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

  3. 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

  4. Enqueuing Requests (r, ID) Round Node id (step) Requests are totally ordered Assume requests with order 1,2,3,…,k 4

  5. Enqueuing Requests Initially nil head 9 5

  6. 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

  7. Final Queue 7 3 1 2 8 head 4 5 nil 9 6 10 7

  8. 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

  9. Basic Algorithm Assume requests with order 1,2,3,…,k Min order (1) reaches all nodes cycle 1 Enqueue the 1 st request 9

  10. Basic Algorithm Assume requests with order 1,2,3,…,k Min order (2) reaches all nodes cycle 2 Enqueue the 2 nd request 10

  11. Basic Algorithm Assume requests with order 1,2,3,…,k Min order (3) reaches all nodes cycle 3 Enqueue the 3 rd request 11

  12. Basic Algorithm Assume requests with order 1,2,3,…,k Min order (k) reaches all nodes cycle k Enqueue the k-th request 12

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. Final Queue (end of cycle k=10) 7 3 1 2 8 head 4 5 nil 9 6 10 18

  19. Propagation Set of nodes Set of nodes without 1 that have 1 1 1 1 1 1 1 1 1 1 1 19

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. Pipelining t=1 1 2 3 5 4 34

  35. Pipelining t=1 1 2 1 3 5 4 35

  36. Pipelining t=2 1 2 1 3 5 4 36

  37. Pipelining t=2 1 2 1 1 2 3 5 4 37

  38. Pipelining t=3 1 2 1 2 1 3 5 4 38

  39. Pipelining t=3 1 2 1 2 1 1 2 3 3 5 4 39

  40. Pipelining t=4 1 2 1 2 1 2 1 3 3 5 4 40

  41. Pipelining t=4 1 2 1 2 1 2 1 2 3 4 1 3 3 5 4 41

  42. Pipelining t=5 1 2 1 2 1 2 1 2 1 3 3 3 5 4 4 42

  43. Pipelining t=5 1 2 1 2 1 2 1 2 1 1 4 3 2 5 3 3 3 5 4 4 43

  44. Pipelining t=6 1 2 1 2 1 2 1 2 1 2 1 3 3 3 3 5 5 4 4 4 44

  45. 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

  46. 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

  47. 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

  48. 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

  49. 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

  50. 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

  51. 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

  52. 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

  53. Collisions from other paths t=1 3 1 2 53

  54. Collisions from other paths t=2 3 3 1 1 2 2 54

  55. Collisions from other paths t=3 3 1 3 1 1 1 2 2 2 55

  56. Collisions from other paths t=4 3 3 1 3 1 1 1 2 3 1 2 2 2 56

  57. Collisions from other paths t=5 3 3 3 1 1 3 1 1 1 2 1 3 2 1 2 2 2 57

  58. 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

  59. 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

  60. 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

  61. 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

  62. 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

  63. 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

  64. 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

  65. 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

  66. 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

  67. 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

  68. 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

  69. 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

  70. 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

  71. Total time #cycles * cycle_duration = #cycles * periods_per_cycle * period_duration = k/T * (n/T) * 2T = O(kn/T) 71

Recommend


More recommend