Self Stabilizing Distributed Queuing [chapter]

Maurice Herlihy, Srikanta Tirthapura
2001 Lecture Notes in Computer Science  
Distributed queuing is a fundamental coordination problem, arising in a variety of applications, including distributed shared memory, distributed directories, and totally ordered multicast. A distributed queue can be used to order events, user operations, or messages in a distributed system. * A preliminary version of this article has appeared in the Proceedings of the 15th International Symposium on Distributed Computing (DISC) 2001, pages 209-223 † Contact Author This paper presents a new
more » ... -stabilizing distributed queuing protocol. This protocol adds self-stabilizing actions to the arrow distributed queuing protocol, a simple path-reversal protocol that runs on a spanning tree of the network. We present a proof that the protocol stabilizes to a stable state irrespective of the (perhaps faulty) initial state, and also present an analysis of the time till convergence. The self-stabilizing queuing protocol is structured as a layer that runs on top of any self-stabilizing spanning tree protocol. This additional queuing layer is guaranteed to stabilize in time bounded by a constant number of message delays across an edge, thus establishing that the stabilization time for distributed queuing is not much more than the stabilization time for spanning tree maintenance. The key idea in our protocol is that the global predicate defining the legality of a protocol state can be written as the conjunction of many purely local predicates, one for each edge of the spanning tree.
doi:10.1007/3-540-45414-4_15 fatcat:wqc67yvz3bbtbaxdt75yhw4way