VairableSpeeds Protocol

The nodes are in the form of a ring.

leader := null
token := u
For round $r\in 1,2,\ldots$:
  Send $leader token$ to neighbors every $2^{token}$ rounds
  on receiving $leader v$:
    if $v < token$:
      set $token \leftarrow v$
    if $v = u$:
      $leader \leftarrow u$
      halt

Notes

  • This protocol is from Distributed algorithms. Nancy A. Lynch. 1997
  • The round complexity of the protocol is \(O(n\cdot 2^{u_{min}})\)
  • The communication complexity is \(O(n)\).
  • The protocol presented above needs the nodes to start at the same time.
    • Define people who wake up before hearing any message as starters, and others as non-starters.
    • Starters send "wakeup u" to neighbors.
    • All nodes forward this to neighbors.
    • A starter on receiving a wakeup message then starts the above protocol.
    • Nodes update token using the wakeup messages as an optimization.