Low contention linearizable counting
- 9 December 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 526-537
- https://doi.org/10.1109/sfcs.1991.185415
Abstract
The linearizable counting problem requires asynchronous concurrent processes to assign themselves successive values so that the order of the values assigned reflects the real-time order in which they were requested. It is shown that the problem can be solved without funneling all processes through a common memory location. Two new constructions for linearizable counting networks, data structures that solve the linearizable counting problem, are given. The first construction is nonblocking: some process takes a value after O(n) network gates have been traversed. The second construction is wait-free: it guarantees that each process takes a value after it traverses O(wn) gates, where w is a parameter affecting contention. It is shown that in any nonblocking or wait-free linearizable counting network, processes must traverse an average of Omega (n) gates, and so the constructions are close to optimal. A simpler and more efficient network is constructed by giving up the robustness requirements and allowing processes to wait for one another.Keywords
This publication has 15 references indexed in Scilit:
- Counting networks and multi-processor coordinationPublished by Association for Computing Machinery (ACM) ,1991
- Linearizability: a correctness condition for concurrent objectsACM Transactions on Programming Languages and Systems, 1990
- A methodology for implementing highly concurrent data structuresPublished by Association for Computing Machinery (ACM) ,1990
- Mul-T: a high-performance parallel LispPublished by Association for Computing Machinery (ACM) ,1989
- Algorithms for parallel memory allocationInternational Journal of Parallel Programming, 1988
- Efficient synchronization of multiprocessors with shared memoryPublished by Association for Computing Machinery (ACM) ,1986
- Impossibility of distributed consensus with one faulty processJournal of the ACM, 1985
- Basic Techniques for the Efficient Coordination of Very Large Numbers of Cooperating Sequential ProcessorsACM Transactions on Programming Languages and Systems, 1983
- The serializability of concurrent database updatesJournal of the ACM, 1979
- A new solution of Dijkstra's concurrent programming problemCommunications of the ACM, 1974