Cure: Strong Semantics Meets High Availability and Low Latency

@article{Akkoorath2016CureSS,
  title={Cure: Strong Semantics Meets High Availability and Low Latency},
  author={Deepthi Devaki Akkoorath and Alejandro Z. Tomsic and Manuel Bravo and Zhongmiao Li and Tyler Crain and Annette Bieniusa and Nuno M. Preguiça and Marc Shapiro},
  journal={2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS)},
  year={2016},
  pages={405-414}
}
Developers of cloud-scale applications face a difficult decision of which kind of storage to use, summarised by the CAP theorem. Currently the choice is between classical CP databases, which provide strong guarantees but are slow, expensive, and unavailable under partition, and NoSQL-style AP databases, which are fast and available, but too hard to program against. We present an alternative: Cure provides the highest level of guarantees that remains compatible with availability. These… 

Figures and Tables from this paper

Antidote: the highly-available geo-replicated database with strongest guarantees
Cloud-scale applications need highly available, low latency responses to serve millions of users around the world. To meet this need, applications have to carefully choose a high performance
Antidote SQL: Relaxed When Possible, Strict When Necessary
TLDR
Antidote SQL is presented, a database system that allows application developers to relax SQL consistency when possible and enforces primary key, foreign key and check SQL constraints even under relaxed consistency, which is sufficient for guaranteeing the correctness of many applications.
Exploring the design space of highly-available distributed transactions
TLDR
A three-way trade-off between read isolation, delay (latency), and data freshness is found and demonstrated, and two isolation properties are proposed: TCC- and PSI-.
Just-Right Consistency: reconciling availability and safety
TLDR
The Antidote cloud database system supports CRDTs, Transactional Causal Consistency and the Bounded Counter data type, and offers a principled approach to designing such applications, reconciling correctness with availability and performance.
Achieving convergent causal consistency and high availability for cloud storage
UniStore: A fault-tolerant marriage of causal and strong consistency (extended version)
TLDR
The key challenge of UNISTORE is to maintain liveness despite data center failures: this could be compromised if a strong transaction takes a dependency on a causal transaction that is later lost because of a failure.
An edge enabled replication kernel for CRDTs
TLDR
A novel CRDT replication kernel is proposed that simplifies the task of leveraging on genuine partial replication, offers causal+ consistency guarantees, and provides efficient synchronization mechanisms built on top of CRDTs to offer configurable conflict resolution policies.
A fault-tolerance shim for serverless computing
TLDR
This paper presents aft, an atomic fault tolerance shim for serverless applications that interposes between a commodity FaaS platform and storage engine and ensures atomic visibility of updates by enforcing the read atomic isolation guarantee.
Mechanisms for Providing Causal Consistency on Edge Computing
TLDR
Gesto is presented, a data storage architecture that enables scalable causal consistency for edge networks that integrates a novel causality tracking mechanism that relies on multipart timestamps of constant size, independently on the number of edge caches.
Consistify: preserving correctness and SLA under weak consistency
TLDR
Consistify is presented, a novel framework, that acts as an interface layer between client applications and underlying data-stores, and enables client applications to execute with weak per-operation consistency settings, while simultaneously respecting: 1) the correctness conditions, specified using logical predicates, and 2) the SLA deadline.
...
...

References

SHOWING 1-10 OF 49 REFERENCES
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.
Stronger Semantics for Low-Latency Geo-Replicated Storage
TLDR
The evaluation shows that the Eiger system achieves low latency, has throughput competitive with eventually-consistent and non-transactional Cassandra, and scales out to large clusters almost linearly (averaging 96% increases up to 128 server clusters).
Write Fast, Read in the Past: Causal Consistency for Client-Side Applications
TLDR
The SwiftCloud algorithms, design, and experimental evaluation show that client-side apps enjoy the high performance and availability, under the same guarantees as a remote cloud data store, at a small cost.
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.
Non-Monotonic Snapshot Isolation
TLDR
This work proposes a weaker consistency criterion, called Non-monotonic Snapshot Isolation (NMSI), and presents a GPR protocol that ensures NMSI, and has lower message cost than previous approaches.
Highly Available Transactions: Virtues and Limitations
TLDR
A taxonomy of highly available systems is introduced and existing ACID isolation and distributed data consistency guarantees are analyzed to identify which can and cannot be achieved in HAT systems.
Scalable Atomic Visibility with RAMP Transactions
TLDR
This work presents algorithms for Read Atomic Multipartition (RAMP) transactions that enforce atomic visibility while offering excellent scalability, guaranteed commit despite partial failures, and minimized communication between servers (via partition independence).
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 data types: specification, verification, optimality
TLDR
This work proposes a framework for specifying replicated data types using relations over events and verifying their implementations using replication-aware simulations, and shows how to specify consistency of replicated stores with multiple objects axiomatically, in analogy to prior work on weak memory models.
...
...