Cure: Strong Semantics Meets High Availability and Low Latency
- 1 June 2016
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE) in 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS)
- p. 405-414
- https://doi.org/10.1109/icdcs.2016.98
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 PastPublished by Association for Computing Machinery (ACM) ,2015
- Feral Concurrency ControlPublished by Association for Computing Machinery (ACM) ,2015
- Scalable atomic visibility with RAMP transactionsPublished by Association for Computing Machinery (ACM) ,2014
- OrbePublished by Association for Computing Machinery (ACM) ,2013
- Clock-SI: Snapshot Isolation for Partitioned Data Stores Using Loosely Synchronized ClocksPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2013
- Eventually Consistent TransactionsLecture Notes in Computer Science, 2012
- Transactional storage for geo-replicated systemsPublished by Association for Computing Machinery (ACM) ,2011
- DynamoPublished by Association for Computing Machinery (ACM) ,2007
- Causal memory: definitions, implementation, and programmingDistributed Computing, 1995
- A critique of ANSI SQL isolation levelsPublished by Association for Computing Machinery (ACM) ,1995