一句话:提出全自动验证 MRDT 复制感知线性一致性的代数性质与自底向上线性化方法。
复制数据类型(RDT)常用于构建容错、低延迟的去中心化应用,其正确性通常用强最终一致性刻画,即收到相同更新的副本最终收敛到相同状态,但该规约无法说明收敛状态与副本接收更新之间的关系。复制感知线性一致性是一种更强规约:副本状态必须能由该副本收到的更新线性化得到。本文面向可合并复制数据类型(MRDT),提出全自动验证复制感知线性一致性的新技术。作者识别出 MRDT 操作与合并函数的一组新颖代数性质,这些性质足以证明实现满足线性一致性,并超越交换律、结合律与幂等性等标准条件;同时提出称为自底向上线性化的归纳技术来自动验证所需代数性质。该方法适用于 MRDT 与基于状态的 CRDT,并已成功应用于多个复杂实现,包括一种新的 JSON MRDT。
Data replication is crucial for enabling fault tolerance and uniform low latency in modern decentralized applications. Replicated Data Types (RDTs) have emerged as a principled approach for developing replicated implementations of basic data structures such as counter, flag, set, map, etc. While the correctness of RDTs is generally specified using the notion of strong eventual consistency–which guarantees that replicas that have received the same set of updates would converge to the same state–a more expressive specification which relates the converged state to updates received at a replica would be more beneficial to RDT users. Replication-aware linearizability is one such specification, which requires all replicas to always be in a state which can be obtained by linearizing the updates received at the replica. In this work, we develop a novel fully automated technique for verifying replication-aware linearizability for Mergeable Replicated Data Types (MRDTs). We identify novel algebraic properties for MRDT operations and the merge function which are sufficient for proving an implementation to be linearizable and which go beyond the standard notions of commutativity, associativity, and idempotence. We also develop a novel inductive technique called bottom-up linearization to automatically verify the required algebraic properties. Our technique can be used to verify both MRDTs and state-based CRDTs. We have successfully applied our approach to a number of complex MRDT and CRDT implementations including a novel JSON MRDT.
@article{paperbot3215,
title = {Automatically Verifying Replication-Aware Linearizability},
author = {Vimala Soundarapandian and Kartik Nagar and Aseem Rastogi and KC Sivaramakrishnan},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {OOPSLA1},
year = {2025},
doi = {10.1145/3720452}
}