Automating the choice of consistency levels in replicated systems

Cheng Li, João Leitão, Allen Clement, Nuno Preguiça, Rodrigo Rodrigues, Viktor Vafeiadis

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review


Online services often use replication for improving the performance of user-facing services. However, using replication for performance comes at a price of weakening the consistency levels of the replicated service. To address this tension, recent proposals from academia and industry allow operations to run at different consistency levels. In these systems, the programmer has to decide which level to use for each operation. We present SIEVE, a tool that relieves Java programmers from this error-prone decision process, allowing applications to automatically extract good performance when possible, while resorting to strong consistency whenever required by the target semantics. Taking as input a set of application-specific invariants and a few annotations about merge semantics, SIEVE performs a combination of static and dynamic analysis, offline and at runtime, to determine when it is necessary to use strong consistency to preserve these invariants and when it is safe to use causally consistent commutative replicated data types (CRDTs). We evaluate SIEVE on two web applications and show that the automatic classification overhead is low.

Original languageEnglish
Title of host publicationProceedings of the 2014 USENIX Annual Technical Conference, USENIX ATC 2014
PublisherUSENIX Association
Number of pages12
ISBN (Electronic)9781931971102
Publication statusPublished - 1 Jan 2019
Event2014 USENIX Annual Technical Conference, USENIX ATC 2014 - Philadelphia, United States
Duration: 19 Jun 201420 Jun 2014


Conference2014 USENIX Annual Technical Conference, USENIX ATC 2014
Country/TerritoryUnited States


  • Semantics


Dive into the research topics of 'Automating the choice of consistency levels in replicated systems'. Together they form a unique fingerprint.

Cite this