Cure: Strong Semantics Meets High Availability and Low Latency
Authors:
- Deepthi Devaki AkkoorathDADeepthi Devaki Akkoorath
- Alejandro Z. TomsicATAlejandro Z. Tomsic
- Manuel BravoMBManuel Bravo
- Zhongmiao LiZLZhongmiao Li
- Tyler CrainTCTyler Crain
- Annette BieniusaABAnnette Bieniusa
- Nuno PreguicaNPNuno Preguica
- Marc ShapiroMSMarc Shapiro
- 1 June 2016
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10636927,p. 405-414
Abstract
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 guarantees include: causal consistency (no ordering anomalies), atomicity (consistent multi-key updates), and support for high-level data types (developer friendly API) with safe resolution of concurrent updates (guaranteeing convergence). These guarantees minimise the anomalies caused by parallelism and distribution, thus facilitating the development of applications. This paper presents the protocols for highly available transactions, and an experimental evaluation showing that Cure is able to achieve scalability similar to eventually-consistent NoSQL databases, while providing stronger guarantees.Keywords
This publication has 15 references indexed in Scilit:
- Write Fast, Read in the Past2015
- Feral Concurrency Control2015
- Scalable atomic visibility with RAMP transactions2014
- Orbe2013
- Clock-SI: Snapshot Isolation for Partitioned Data Stores Using Loosely Synchronized Clocks2013
- Eventually Consistent Transactions2012
- Transactional storage for geo-replicated systems2011
- Dynamo2007
- Causal memory: definitions, implementation, and programmingDistributed Computing, 1995
- A critique of ANSI SQL isolation levels1995