Replicated data types: specification, verification, optimality

@article{Burckhardt2014ReplicatedDT,
  title={Replicated data types: specification, verification, optimality},
  author={Sebastian Burckhardt and Alexey Gotsman and Hongseok Yang and Marek Zawirski},
  journal={Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
  year={2014}
}
Geographically distributed systems often rely on replicated eventually consistent data stores to achieve availability and performance. To resolve conflicting updates at different replicas, researchers and practitioners have proposed specialized consistency protocols, called replicated data types, that implement objects such as registers, counters, sets or lists. Reasoning about replicated data types has however not been on par with comparable work on abstract data types and concurrent data… 
Bounded Implementations of Replicated Data Types
TLDR
By imposing reasonable restrictions on the underlying network, Burkhardt et al recast their declarative framework in terms of standard labelled partial orders, and are able to construct canonical finite-state reference implementations with bounded metadata that can be used for formal verification of ECRDT implementations via CEGAR.
Dependable Eventual Consistency with Replicated Data Types
TLDR
This thesis designs optimized set and register RDTs with metadata overhead reduced to the number of replicas, and designs SwiftCloud, a replicated causally-consistent RDT object database for client-side applications, e.g., mobile or in-browser apps.
Dependable eventual consistency with replicated data types. (Cohérence à terme fiable avec des types de données répliquées)
TLDR
This thesis designs optimized set and register RDTs with metadata overhead reduced to the number of replicas, and designs SwiftCloud, a replicated causally-consistent RDT object database for client-side applications with small metadata.
Mergeable replicated data types
TLDR
This work presents a fundamentally different approach to programming in the presence of replicated state based on the use of invertible relational specifications of an inductively-defined data type as a mechanism to capture salient aspects of the data type relevant to how its different instances can be safely merged in a replicated environment.
Toward Domain-Specific Solvers for Distributed Consistency
TLDR
It is argued that domain-specific SMT-based tools that exploit the mathematical foundations of distributed consistency would enable both more efficient verification and improved ease of use for domain experts.
Semantics, Specification, and Bounded Verification of Concurrent Libraries in Replicated Systems
TLDR
This paper proposes appropriate semantics and specifications for highly-concurrent libraries in a weakly-consistent, replicated setting and develops a static analysis framework that can automatically detect correctness violations of library implementations parameterized with respect to the different consistency policies provided by the underlying system.
Replication-aware linearizability
TLDR
This work addresses the problem of specifying and verifying CRDTs, introducing a new correctness criterion called Replication-Aware Linearizability, inspired by linearizable, the de-facto correctness criterion for (shared-memory) concurrent data structures.
Safe replication through bounded concurrency verification
TLDR
A novel programming framework for replicated data types (RDTs) equipped with an automatic (bounded) verification technique that discovers and fixes weak consistency anomalies and shows that in practice, proving bounded safety guarantees typically generalize to the unbounded case.
Eventually consistent register revisited
TLDR
This work identifies a register construction that generalizes existing ones by combining runtime causality ordering, to identify concurrent writes, with static data semantics, to resolve them and proposes a simple conflict resolution template based on an application-predefined order on the domain of values.
Limitations of Highly-Available Eventually-Consistent Data Stores
TLDR
A recent model for replicated data stores is explored that can be used to precisely specify causal consistency for multi-valued registers, and liveness properties like eventual consistency, without revealing details of the underlying implementation.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 41 REFERENCES
An optimized conflict-free replicated set
TLDR
A reasoning abstraction, \emph{permutation equivalence}, is presented that systematizes the characterization of the expected concurrency semantics of concurrent types and presents one of the existing conflict-free replicated data types, Observed-Remove Set.
Conflict-Free Replicated Data Types
TLDR
This paper formalises two popular approaches (state- and operation-based) and their relevant sufficient conditions and studies a number of useful CRDTs, such as sets with clean semantics, supporting both add and remove operations, and considers in depth the more complex Graph data type.
A comprehensive study of Convergent and Commutative Replicated Data Types
TLDR
This paper formalises asynchronous object replication, either state based or operation based, and provides a sufficient condition appropriate for each case, and describes several useful CRDTs, including container data types supporting bothadd and remove operations with clean semantics, and more complex types such as graphs, montonic DAGs, and sequences.
Replicated abstract data types: Building blocks for collaborative applications
TLDR
This paper extends a few representative abstract data types, such as arrays, hash tables, and growable arrays, into replicated Abstract data types (RADTs), into which RGAs show significant improvement in performance, scalability, and reliability.
Managing update conflicts in Bayou, a weakly connected replicated storage system
TLDR
The motivation for and design of these mechanisms for conflict detection and per -write conflict resolution based on client-provid ed procedures are presented and the experiences gained with an initial implementation of the system are described.
CheckFence: checking consistency of concurrent data types on relaxed memory models
TLDR
The CheckFence prototype automatically translates the C implementation code and the test program into a SAT formula, hands the latter to a standard SAT solver, and constructs counter example traces if there exist incorrect executions.
Don't settle for eventual: scalable causal consistency for wide-area storage with COPS
TLDR
This paper identifies and defines a consistency model---causal consistency with convergent conflict handling, or causal+---that is the strongest achieved under these constraints and presents the design and implementation of COPS, a key-value store that delivers this consistency model across the wide-area.
Understanding Eventual Consistency
TLDR
This work proposes a framework for formal and declarative specification of the semantics of eventually consistent systems using axioms, and demonstrates that the framework provides system architects with a tool for explor- ing the design space, and lays the foundation for formal reasoning aboutEventually consistent systems.
Eventually Consistent Transactions
TLDR
This work establishes a handful of simple operational rules for managing replicas, versions and updates, based on graphs called revision diagrams, and proves that these rules are sufficient to guarantee correct implementation of eventually consistent transactions.
Cloud Types for Eventual Consistency
TLDR
It is demonstrated how cloud types enable simple programs to use eventually consistent storage without introducing undue complexity, and how to provide cloud types using a system and protocol comprised of multiple servers and clients is demonstrated.
...
1
2
3
4
5
...