Just-Right Consistency: reconciling availability and safety

01/19/2018
by   Marc Shapiro, et al.
0

By the CAP Theorem, a distributed data storage system can ensure either Consistency under Partition (CP) or Availability under Partition (AP), but not both. This has led to a split between CP databases, in which updates are synchronous, and AP databases, where they are asynchronous. However, there is no inherent reason to treat all updates identically: simply, the system should be as available as possible, and synchronised just enough for the application to be correct. We offer a principled Just-Right Consistency approach to designing such applications, reconciling correctness with availability and performance, based on the following insights:(i) The Conflict-Free Replicated Data Type (CRDTs) data model supports asynchronous updates in an intuitive and principled way.(ii) Invariants involving joint or mutually-ordered updates are compatible with AP and can be guaranteed by Transactional Causal Consistency, the strongest consistency model that does not compromise availability. Regarding the remaining, "CAP-sensitive" invariants:(iii) For the common pattern of Bounded Counters, we provide encapsulated data type that is proven correct and is efficient; (iv) in the general case, static analysis can identify when synchronisation is not necessary for correctness.Our Antidote cloud database system supports CRDTs, Transactional Causal Consistency and the Bounded Counter data type. Support tools help design applications by static analysis and proof of CAP-sensitive invariants. This system supports industrial-grade applications and has been tested experimentally with hundreds of servers across several geo-distributed data centres.

READ FULL TEXT
research
11/19/2020

Checking Causal Consistency of Distributed Databases

The CAP Theorem shows that (strong) Consistency, Availability, and Parti...
research
07/17/2018

Improving the "Correct Eventual Consistency" Tool

Preserving invariants while designing distributed applications under wea...
research
03/09/2018

Ensuring referential integrity under causal consistency

Referential integrity (RI) is an important correctness property of a sha...
research
03/15/2019

Replication-Aware Linearizability

Geo-distributed systems often replicate data at multiple locations to ac...
research
12/30/2013

Consistent Bounded-Asynchronous Parameter Servers for Distributed ML

In distributed ML applications, shared parameters are usually replicated...
research
01/21/2023

Consistency vs. Availability in Distributed Real-Time Systems

In distributed applications, Brewer's CAP theorem tells us that when net...
research
03/07/2019

Invariant Safety for Distributed Applications

We study a proof methodology for verifying the safety of data invariants...

Please sign up or login with your details

Forgot password? Click here to reset