Resolving Conflicts with Grace: Dynamically Concurrent Universality
Petr Kuznetsov, Nathan Josia Schrodt
TL;DR
The paper addresses the scalability bottleneck of synchronization in distributed systems by introducing dynamic concurrency, where strong synchronization is used only when current state-dependent conflicts arise. It presents a dynamically concurrent universal construction that replaces static consensus-based ordering with a dependency graph (the ABC Graph) to enable parallel execution of commuting operations and to apply consensus only when necessary. Key contributions include formal definitions of dynamic concurrency, the Announce-Book-Commit (ABC) Graph, and a wait-free, linearizable universal construction with rigorous correctness arguments and a discussion of performance trade-offs. The framework is general and applies to arbitrary sequential objects, offering potential performance gains in workloads with rare dynamic conflicts while also highlighting the cost of commutativity checks and the circumstances under which consensus may still be preferable.
Abstract
Synchronization is the major obstacle to scalability in distributed computing. Concurrent operations on the shared data engage in synchronization when they encounter a \emph{conflict}, i.e., their effects depend on the order in which they are applied. Ideally, one would like to detect conflicts in a \emph{dynamic} manner, i.e., adjusting to the current system state. Indeed, it is very common that two concurrent operations conflict only in some rarely occurring states. In this paper, we define the notion of \emph{dynamic concurrency}: an operation employs strong synchronization primitives only if it \emph{has} to arbitrate with concurrent operations, given the current system state. We then present a dynamically concurrent universal construction.
