Declarative Programming over Eventually Consistent Data Stores
User-facing online services utilize geo-distributed data stores to minimize latency and tolerate partial failures, with the intention to provide a fast, always-on experience. However, geo-distribution does not come for free; application developers have to contend with weak consistency behaviors, and the lack of abstractions to composably construct high-level replicated data types, necessitating the need for complex application logic and invariably exposing inconsistencies to the user. Some commercial distributed data stores and several academic proposals provide a lattice of consistency levels, with stronger consistency guarantees incurring increased latency and throughput costs. However, correctly assigning the right consistency level for an operation requires subtle reasoning and is often an error-prone task.
In this paper, we present Quelea, a declarative programming model for eventually consistent data stores (ECDS), equipped with a contract language, capable of specifying fine-grained application-level consistency properties. A contract enforcement system analyses contracts, and automatically generates the appropriate consistency protocol for the method protected by the contract. We describe an implementation of Quelea on top of an off-the-shelf ECDS, and provide support for coordination-free transactions. Several benchmarks including two large web applications, illustrate the effectiveness of our approach.
Wed 17 Jun
|09:15 - 09:40|
KC SivaramakrishnanUniversity of Cambridge, Gowtham KakiPurdue University, Suresh JagannathanPurdue UniversityMedia Attached
|09:40 - 10:05|
Jeremy G. SiekIndiana University, Peter ThiemannUniversity of Freiburg, Philip WadlerUniversity of EdinburghMedia Attached
|10:05 - 10:30|
Yizhou ZhangCornell University, Andrew Myers, Barbara LiskovMIT, Guido SalvaneschiTU Darmstadt, Matt LoringCornell UniversityMedia Attached
|10:30 - 10:55|