Efficient synchronization of multiprocessors with shared memory
PODC '86 Proceedings of the fifth annual ACM symposium on Principles of distributed computing
An evaluation of directory schemes for cache coherence
ISCA '88 Proceedings of the 15th Annual International Symposium on Computer architecture
A tree-based algorithm for distributed mutual exclusion
ACM Transactions on Computer Systems (TOCS)
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scalability of parallel machines
Communications of the ACM
Computer
Competitive concurrent distributed queuing
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
The Arrow Distributed Directory Protocol
DISC '98 Proceedings of the 12th International Symposium on Distributed Computing
An economical solution to the cache coherence problem
ISCA '84 Proceedings of the 11th annual international symposium on Computer architecture
Dynamic analysis of the arrow distributed protocol
Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures
Exploiting distributed version concurrency in a transactional memory cluster
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Dynamic Analysis of the Arrow Distributed Protocol
Theory of Computing Systems
The ballistic protocol: location-aware distributed cache coherence in metric-space networks
The ballistic protocol: location-aware distributed cache coherence in metric-space networks
A New Solution to Coherence Problems in Multicache Systems
IEEE Transactions on Computers
Software transactional memory for large scale clusters
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Approximating Minimum Max-Stretch Spanning Trees on Unweighted Graphs
SIAM Journal on Computing
D2STM: Dependable Distributed Software Transactional Memory
PRDC '09 Proceedings of the 2009 15th IEEE Pacific Rim International Symposium on Dependable Computing
Brief Announcement: Relay: A Cache-Coherence Protocol for Distributed Transactional Memory
OPODIS '09 Proceedings of the 13th International Conference on Principles of Distributed Systems
Full reversal routing as a linear dynamical system
SIROCCO'11 Proceedings of the 18th international conference on Structural information and communication complexity
TM2C: a software transactional memory for many-cores
Proceedings of the 7th ACM european conference on Computer Systems
A quorum-based replication framework for distributed software transactional memory
OPODIS'11 Proceedings of the 15th international conference on Principles of Distributed Systems
Towards load balanced distributed transactional memory
Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
Transience bounds for distributed algorithms
FORMATS'13 Proceedings of the 11th international conference on Formal Modeling and Analysis of Timed Systems
Hi-index | 0.04 |
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.