论文标题

卡塔拉:合成具有经过验证的举重的CRDT

Katara: Synthesizing CRDTs with Verified Lifting

论文作者

Laddad, Shadaj, Power, Conor, Milano, Mae, Cheung, Alvin, Hellerstein, Joseph M.

论文摘要

无冲突复制的数据类型(CRDT)是设计可扩展的无协调分布式系统的有前途的工具。但是,构建正确的CRDT是困难的,甚至对经验丰富的开发人员也带来了挑战。结果,CRDT开发在很大程度上仍然是学者的领域,新设计通常在等待同行评审和手动的正确性证明。在本文中,我们提出了Katara,这是一种基于程序综合的系统,该系统采用顺序数据类型实现,并自动从中综合了经过验证的CRDT设计。此过程的关键是CRDT正确性的新正式定义,该定义将参考顺序类型与轻巧的有序约束结合在一起,该约束解决了非交通操作之间的冲突。我们的过程遵循经过验证的举重的工作传统,包括使用合成的电感不变性和CRDT状态和运行时的手工制作的语法对SMT逻辑的编码进行编码。 Katara能够自动合成CRDT的各种场景,从重现经典CRDT到基于现有文献中规范的新型设计。至关重要的是,我们的合成CRDT已充分,自动验证,消除了整个常见错误,并减少了从艰苦的纸张证明正确性的纸质证明到轻量级规格的过程。

Conflict-free replicated data types (CRDTs) are a promising tool for designing scalable, coordination-free distributed systems. However, constructing correct CRDTs is difficult, posing a challenge for even seasoned developers. As a result, CRDT development is still largely the domain of academics, with new designs often awaiting peer review and a manual proof of correctness. In this paper, we present Katara, a program synthesis-based system that takes sequential data type implementations and automatically synthesizes verified CRDT designs from them. Key to this process is a new formal definition of CRDT correctness that combines a reference sequential type with a lightweight ordering constraint that resolves conflicts between non-commutative operations. Our process follows the tradition of work in verified lifting, including an encoding of correctness into SMT logic using synthesized inductive invariants and hand-crafted grammars for the CRDT state and runtime. Katara is able to automatically synthesize CRDTs for a wide variety of scenarios, from reproducing classic CRDTs to synthesizing novel designs based on specifications in existing literature. Crucially, our synthesized CRDTs are fully, automatically verified, eliminating entire classes of common errors and reducing the process of producing a new CRDT from a painstaking paper proof of correctness to a lightweight specification.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源