A Provably Starvation-Free Distributed Directory Protocol

This paper presents COMBINE, a distributed directory protocol for shared objects, designed for large-scale distributed systems. Directory protocols support move requests, allowing to write the object locally, as well as lookup requests, providing a read-only copy of the object. They have been used in distributed shared memory implementations and in data-flow implementations of distributed software transactional memory in large-scale systems. The protocol runs on an overlay tree, whose leaves are the nodes of the system; it ensures that the cost of serving a request is proportional to the cost of the shortest path between the requesting node and the serving node, in the overlay tree. The correctness of the protocol, including starvation freedom, is proved, despite asynchrony and concurrent requests. The protocol avoids race conditions by combining requests that overtake each other as they pass through the same node. Using an overlay tree with a good stretch factor yields an efficient protocol, even when requests are concurrent.

[1]  Mark Horowitz,et al.  An evaluation of directory schemes for cache coherence , 1998, ISCA '98.

[2]  Fabian Kuhn,et al.  Dynamic Analysis of the Arrow Distributed Protocol , 2004, SPAA '04.

[3]  Maurice Herlihy,et al.  The Arrow Distributed Directory Protocol , 1998, DISC.

[4]  Luís E. T. Rodrigues,et al.  D2STM: Dependable Distributed Software Transactional Memory , 2009, 2009 15th IEEE Pacific Rim International Symposium on Dependable Computing.

[5]  Larry Rudolph,et al.  Efficient synchronization of multiprocessors with shared memory , 1988, TOPL.

[6]  Gregory F. Pfister,et al.  “Hot spot” contention and combining in multistage interconnection networks , 1985, IEEE Transactions on Computers.

[7]  Stein Gjessing,et al.  Distributed-directory scheme: scalable coherent interface , 1990, Computer.

[8]  Maurice Herlihy,et al.  Competitive concurrent distributed queuing , 2001, PODC '01.

[9]  James K. Archibald,et al.  An economical solution to the cache coherence problem , 1984, ISCA '84.

[10]  David B. Gustavson,et al.  Scalable Coherent Interface , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[11]  David Peleg,et al.  Approximating Minimum Max-Stretch spanning Trees on unweighted graphs , 2004, SODA '04.

[12]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[13]  Maurice Herlihy,et al.  The Ballistic Protocol: Location-aware Distributed Cache Coherence in Metric-Space Networks , 2006 .

[14]  Anant Agarwal,et al.  Scalability of parallel machines , 1991, CACM.

[15]  Ye Sun,et al.  Distributed transactional memory for metric-space networks , 2005, Distributed Computing.

[16]  Donald Yeung,et al.  THE MIT ALEWIFE MACHINE: A LARGE-SCALE DISTRIBUTED-MEMORY MULTIPROCESSOR , 1991 .

[17]  Bradford L. Chamberlain,et al.  Software transactional memory for large scale clusters , 2008, PPoPP.

[18]  Binoy Ravindran,et al.  Brief Announcement: Relay: A Cache-Coherence Protocol for Distributed Transactional Memory , 2009, OPODIS.

[19]  Anant Agarwal,et al.  Directory-based cache coherence in large-scale multiprocessors , 1990, Computer.

[20]  Hagit Attiya,et al.  COMBINE: An Improved Directory-Based Consistency Protocol , 2010 .

[21]  Kerry Raymond,et al.  A tree-based algorithm for distributed mutual exclusion , 1989, TOCS.

[22]  Paul Feautrier,et al.  A New Solution to Coherence Problems in Multicache Systems , 1978, IEEE Transactions on Computers.

[23]  Maurice Herlihy,et al.  Dynamic Analysis of the Arrow Distributed Protocol , 2006, Theory of Computing Systems.

[24]  Madalin Mihailescu,et al.  Exploiting distributed version concurrency in a transactional memory cluster , 2006, PPoPP '06.