VeriFx: Correct Replicated Data Types for the Masses

07/06/2022
by   Kevin De Porre, et al.
0

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.

READ FULL TEXT

page 1

page 8

research
04/08/2021

First-order natural deduction in Agda

Agda is a dependently-typed functional programming language, based on an...
research
05/14/2019

Automated Parameterized Verification of CRDTs

Maintaining multiple replicas of data is crucial to achieving scalabilit...
research
05/25/2022

Katara: Synthesizing CRDTs with Verified Lifting

Conflict-free replicated data types (CRDTs) are a promising tool for des...
research
02/19/2021

Overcoming Restraint: Modular Refinement using Cogent's Principled Foreign Function Interface

Cogent is a restricted functional language designed to reduce the cost o...
research
03/28/2022

Certified Mergeable Replicated Data Types

Replicated data types (RDTs) are data structures that permit concurrent ...
research
06/27/2018

Conflict-free Replicated Data Types: An Overview

Internet-scale distributed systems often replicate data at multiple geog...
research
02/01/2023

A Universal Technique for Machine-Certified Proofs of Linearizable Algorithms

Linearizability has been the long standing gold standard for consistency...

Please sign up or login with your details

Forgot password? Click here to reset