Issue No. 07 - July (2006 vol. 17)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TPDS.2006.94
Maurice Herlihy , IEEE
Srikanta Tirthapura , IEEE
<p><b>Abstract</b>—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. This paper presents a new self-stabilizing distributed queuing protocol. This protocol adds self-stabilizing actions to the <it>arrow distributed queuing protocol</it>, 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 until 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.</p>
Distributed queue, arrow protocol, self-stabilization.
Maurice Herlihy, Srikanta Tirthapura, "Self-Stabilizing Distributed Queuing", IEEE Transactions on Parallel & Distributed Systems, vol. 17, no. , pp. 646-655, July 2006, doi:10.1109/TPDS.2006.94