Certified Mergeable Replicated Data Types

03/28/2022
by   Vimala Soundarapandian, et al.
0

Replicated data types (RDTs) are data structures that permit concurrent modification of multiple, potentially geo-distributed, replicas without coordination between them. RDTs are designed in such a way that conflicting operations are eventually deterministically reconciled ensuring convergence. Constructing correct RDTs remains a difficult endeavour due to the complexity of reasoning about independently evolving states of the replicas. With the focus on the correctness of RDTs (and rightly so), existing approaches to RDTs are less efficient compared to their sequential counterparts in terms of time and space complexity of local operations. This is unfortunate since RDTs are often used in a local-first setting where the local operations far outweigh remote communication. In this paper, we present Peepul, a pragmatic approach to building and verifying efficient RDTs. To make reasoning about correctness easier, we cast RDTs in the mould of a distributed version control system, and equip it with a three-way merge function for reconciling conflicting versions. Further, we go beyond just verifying convergence, and provide a methodology to verify arbitrarily complex specifications. We develop a replication-aware simulation relation to relate RDT specifications to their efficient purely functional implementations. We implement Peepul as an F* library that discharges proof obligations to an SMT solver. The verified efficient RDTs are extracted as OCaml code and used in Irmin, a Git-like distributed database.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/15/2019

Replication-Aware Linearizability

Geo-distributed systems often replicate data at multiple locations to ac...
research
05/25/2022

Katara: Synthesizing CRDTs with Verified Lifting

Conflict-free replicated data types (CRDTs) are a promising tool for des...
research
05/11/2018

OpSets: Sequential Specifications for Replicated Datatypes (Extended Version)

We introduce OpSets, an executable framework for specifying and reasonin...
research
07/06/2022

VeriFx: Correct Replicated Data Types for the Masses

Distributed systems adopt weak consistency to ensure high availability a...
research
06/02/2023

Specifying and Verifying Persistent Libraries

We present a general framework for specifying and verifying persistent l...
research
05/02/2019

Real Differences between OT and CRDT in Correctness and Complexity for Consistency Maintenance in Co-Editors

OT (Operational Transformation) was invented for supporting real-time co...
research
03/19/2022

An Efficient Approach to Move Elements in a Distributed Geo-Replicated Tree

Replicated tree data structures are extensively used in collaborative ap...

Please sign up or login with your details

Forgot password? Click here to reset