一句话:提出减而治之框架,将线性一致性监控归约为识别保线性一致值,并为常见并发数据类型给出多项式乃至近线性时间算法。
线性一致性是并发数据结构正确性的公认标准,但判定执行历史是否线性一致的监控问题一般被认为难解,其可解边界缺乏系统认识。本文提出统一的“减而治之”框架:核心是识别历史中的“保线性一致值”——删除其操作可得与原历史等线性一致的子历史,此类值不存在即意味着非线一致;并证明识别该值问题有多项式算法当且仅当监控问题可多项式求解。在“无歧义”(每次插入不同值)限制下,该框架为寄存器、集合、栈、队列和优先队列给出多项式时间算法,并经数据结构优化达到近线性时间。在公开并发数据结构实现上的实验表明,方法可扩展到极大规模历史并显著优于现有工具。
Linearizability has become the de facto standard for specifying correctness of implementations of concurrent data structures. While formally verifying such implementations remains challenging, linearizability monitoring has emerged as a promising first step to rule out early problems in the development of custom implementations, and serves as a key component in approaches that stress test such implementations. In this work, we undertake an algorithmic investigation of the linearizability monitoring problem, which asks to check if an execution history obtained from a concurrent data structure implementation is linearizable. While this problem is largely understood to be intractable in general, a systematic understanding of when it becomes tractable has remained elusive. We revisit this problem and first present a unified ‘decrease-and-conquer’ algorithmic framework for designing linearizability monitoring. At its heart, this framework asks to identify special linearizability-preserving values in a given history — values whose presence yields an equi-linearizable sub-history (obtained by removing operations of such values), and whose absence indicates non-linearizability. More importantly, we prove that a polynomial time algorithm for the problem of identifying linearizability-preserving values, immediately yields a polynomial time algorithm for the linearizability monitoring problem, while conversely, intractability of this problem implies intractability of monitoring. We demonstrate the effectiveness of our decrease-and-conquer framework by instantiating it for several popular concurrent data types — registers, sets, stacks, queues and priority queues — deriving polynomial time algorithms for them, under the ( unambiguity ) restriction that each insertion to the underlying data structure adds a distinct value. We further optimize these algorithms to achieve log-linear running time through the use of efficient data structures for amortizing the cost of solving induced sub-problems. Our implementation and evaluation on publicly available implementations of concurrent data structures show that our approach scales to very large histories and significantly outperforms existing state-of-the-art tools.
@article{paperbot2925,
title = {Efficient Decrease-and-Conquer Linearizability Monitoring},
author = {Zheng Han Lee and Umang Mathur},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {OOPSLA2},
year = {2025},
doi = {10.1145/3763123}
}