POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Communications of the ACM
Sticky bits and universality of consensus
Proceedings of the eighth annual ACM Symposium on Principles of distributed computing
Memory coherence in shared virtual memory systems
ACM Transactions on Computer Systems (TOCS)
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
A methodology for implementing highly concurrent data structures
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Wait-free parallel algorithms for the union-find problem
STOC '91 Proceedings of the twenty-third annual ACM symposium on Theory of computing
Distributed data structures: a complexity-oriented view
Proceedings of the 4th international workshop on Distributed algorithms
Low contention linearizable counting
SFCS '91 Proceedings of the 32nd annual symposium on Foundations of computer science
STOC '92 Proceedings of the twenty-fourth annual ACM symposium on Theory of computing
Ultracomputers: a teraflop before its time
Communications of the ACM
PODC '92 Proceedings of the eleventh annual ACM symposium on Principles of distributed computing
Counting networks with arbitrary fan-out
SODA '92 Proceedings of the third annual ACM-SIAM symposium on Discrete algorithms
Low contention load balancing on large-scale multiprocessors
SPAA '92 Proceedings of the fourth annual ACM symposium on Parallel algorithms and architectures
Parallel Programming Using Shared Objects and Broadcasting
Computer - Special issue on sharing: high performance at low cost
A lower bound on wait-free counting
PODC '93 Proceedings of the twelfth annual ACM symposium on Principles of distributed computing
Journal of the ACM (JACM)
Wait-freedom vs. bounded wait-freedom in public data structures (extended abstract)
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Coins, weights and contention in balancing networks
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
A combinatorial treatment of balancing networks
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Contention in counting networks
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Counting networks are practically linearizable
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
Sequentially consistent versus linearizable counting networks
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
Efficient locking for concurrent operations on B-trees
ACM Transactions on Database Systems (TODS)
Concurrent operations on B-trees with overtaking
PODS '85 Proceedings of the fourth ACM SIGACT-SIGMOD symposium on Principles of database systems
Specifying Concurrent Program Modules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
The Impact of Timing on Linearizability in Counting Networks
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
Notes on Sorting and Counting Networks (Extended Abstract)
WDAG '93 Proceedings of the 7th International Workshop on Distributed Algorithms
IPPS '98 Proceedings of the 12th. International Parallel Processing Symposium on International Parallel Processing Symposium
ISTCS '95 Proceedings of the 3rd Israel Symposium on the Theory of Computing Systems (ISTCS'95)
Linearizable counting networks
Distributed Computing
Computing with infinitely many processes
Information and Computation
Hi-index | 5.23 |
A public data structure is required to work correctly in a concurrent environment where many processes may try to access it, possibly at the same time. In implementing such a structure nothing can be assumed in advance about the number or the identities of the processes that might access it.While most of the known concurrent data structures are not public, there are few which are public. Interestingly, these public data structures all deal with various variants of counters, which are data structures that support two operations: increment and read.In this paper, we define the notion of a public data structure, and investigate several types of public counters. Then we give an optimal construction of public counters which satisfies a weak correcness condition, and show that there is no public counter which satisfies a stronger condition. It is hoped that this work will provide insights into the design of other, more complicated, public data structures.