In the Search of Optimal Concurrency
Vincent Gramoli, Petr Kuznetsov, Srivatsan Ravi

TL;DR
This paper introduces the concept of concurrency-optimal implementations for concurrent data structures, proving that pessimistic and optimistic approaches are incomparable and neither is universally optimal in accepting all correct interleavings.
Contribution
It formally defines concurrency-optimality, analyzes search data structures, and proves the incomparability of pessimistic and optimistic implementations regarding concurrency acceptance.
Findings
Pessimistic and optimistic implementations are incomparable in concurrency.
Neither pessimistic nor optimistic implementations are concurrency-optimal.
Certain correct interleavings are accepted by one approach but not the other.
Abstract
Implementing a concurrent data structure typically begins with defining its sequential specification. However, when used \emph{as is}, a nontrivial sequential data structure, such as a linked list, a search tree, or a hash table, may expose incorrect behavior: lost updates, inconsistent responses, etc. To ensure correctness, portions of the sequential code operating on the shared data must be "protected" from data races using synchronization primitives and, thus, certain schedules of the steps of concurrent operations must be rejected. But can we ensure that we do not "overuse" synchronization, i.e., that we reject a concurrent schedule only if it violates correctness? In this paper, we treat this question formally by introducing the notion of a \emph{concurrency-optimal} implementation. A program's concurrency is defined here as its ability to accept concurrent schedules, i.e.,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
