论文标题
Verifx:正确的质量复制数据类型
VeriFx: Correct Replicated Data Types for the Masses
论文作者
论文摘要
分布式系统采用较弱的一致性,以确保高可用性和低潜伏期,但是由于冲突而难以保证状态融合。专家仔细设计了类似于顺序数据类型和嵌入冲突解决机制的复制数据类型(RDT),以确保收敛。设计RDT是具有挑战性的,因为它们的正确性取决于诸如并发操作的订购之类的微妙之处。目前,研究人员可以通过证明纸张或使用证明助手来手动验证RDT。不幸的是,纸张证明会受到推理缺陷和机械化证明的验证,而不是现实世界实施。此外,写作机械化的证据保留给验证专家,并且非常耗时。为了简化RDT的设计,实现和验证,我们提出了具有自动证明功能的高级编程语言Verifx。 VERIFX让程序员在功能集合上实现RDTS并表达自动验证的正确性属性。经过验证的RDT可以转移到主流语言(当前Scala或JavaScript)。 Verifx还提供了用于实施和验证无冲突复制数据类型(CRDT)和操作转换(OT)功能的库。这些库实现了这些方法的一般执行模型并定义其正确性属性。我们使用库来实施和验证35个CRDT的广泛投资组合,并重现有关OT功能的正确性的研究。
Distributed systems adopt weak consistency to ensure high availability and low latency, but state convergence is hard to guarantee due to conflicts. Experts carefully design replicated data types (RDTs) that resemble sequential data types and embed conflict resolution mechanisms that ensure convergence. Designing RDTs is challenging as their correctness depends on subtleties such as the ordering of concurrent operations. Currently, researchers manually verify RDTs, either by paper proofs or using proof assistants. Unfortunately, paper proofs are subject to reasoning flaws and mechanized proofs verify a formalisation instead of a real-world implementation. Furthermore, writing mechanized proofs is reserved to verification experts and is extremely time consuming. To simplify the design, implementation, and verification of RDTs, we propose VeriFx, a high-level programming language with automated proof capabilities. VeriFx lets programmers implement RDTs atop functional collections and express correctness properties that are verified automatically. Verified RDTs can be transpiled to mainstream languages (currently Scala or JavaScript). VeriFx also provides libraries for implementing and verifying Conflict-free Replicated Data Types (CRDTs) and Operational Transformation (OT) functions. These libraries implement the general execution model of those approaches and define their correctness properties. We use the libraries to implement and verify an extensive portfolio of 35 CRDTs and reproduce a study on the correctness of OT functions.