ABSTRACT
Consistency is a long standing problem in distributed systems. Low consistency levels are considered a necessity for scalability. High consistency is required for critical tasks such as payment and identification. Modern (geo-)distributed systems rely on the data propagation mechanisms and consistency guarantees of the distributed data store they build upon, which makes the implementation of a system that mixes different levels of consistency complex and error prone. In this paper we present preliminary work on ConSysT, a programming language that supports heterogeneous consistency specifications at the type level. In ConSysT, developers assign consistency levels directly to the data and the type system ensures the correct behavior of the application even with computations that mix data at multiple consistency levels. Our vision is that the ConSysT runtime automatically determines the most efficient mechanism to achieve the desired level of consistency among those offered by the underlying data store.
- Peter Bailis, Alan Fekete, Ali Ghodsi, Joseph M. Hellerstein, and Ion Stoica. 2013. HAT, Not CAP: Towards Highly Available Transactions (HotOS '13). USENIX Association. Google ScholarDigital Library
- Peter Bailis and Ali Ghodsi. 2013. Eventual Consistency Today: Limitations, Extensions, and Beyond. Commun. ACM 56, 5 (2013), 55--63. Google ScholarDigital Library
- Peter Bailis, Ali Ghodsi, Joseph M. Hellerstein, and Ion Stoica. 2013. Bolt-on Causal Consistency (SIGMOD '13). ACM. Google ScholarDigital Library
- Eric Brewer. 2012. CAP twelve years later: How the "rules" have changed. (2012).Google Scholar
- Sebastian Burckhardt, Manuel Fähndrich, Daan Leijen, and Benjamin P. Wood. 2012. Cloud Types for Eventual Consistency (ECOOP'12). Springer-Verlag. Google ScholarDigital Library
- Julian Dolby, Christian Hammer, Daniel Marino, Frank Tip, Mandana Vaziri, and Jan Vitek. 2012. A Data-centric Approach to Synchronization. ACM Trans. Program. Lang. Syst. 34, 1 (May 2012). Google ScholarDigital Library
- Brandon Holt, James Bornholt, Irene Zhang, Dan Ports, Mark Oskin, and Luis Ceze. 2016. Disciplined Inconsistency with Consistency Types (SoCC '16). ACM. Google ScholarDigital Library
- Cheng Li, João Leitão, Allen Clement, Nuno Preguiça, Rodrigo Rodrigues, and Viktor Vafeiadis. 2014. Automating the Choice of Consistency Levels in Replicated Systems (USENIX ATC'14). USENIX Association, 281--292. Google ScholarDigital Library
- Cheng Li, Daniel Porto, Allen Clement, Johannes Gehrke, Nuno Preguiça, and Rodrigo Rodrigues. 2012. Making Geo-replicated Systems Fast As Possible, Consistent when Necessary (OSDI '12). USENIX Association. Google ScholarDigital Library
- Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. Conflict-free Replicated Data Types (SSS'11). Springer. Google ScholarDigital Library
- Werner Vogels. 2009. Eventually Consistent. Commun. ACM 52, 1 (2009), 40--44. Google ScholarDigital Library
- Nosheen Zaza and Nathaniel Nystrom. 2016. Data-centric Consistency Policies: A Programming Model for Distributed Applications with Tunable Consistency (PMLDC '16). ACM. Google ScholarDigital Library
Recommendations
Disciplined Inconsistency with Consistency Types
SoCC '16: Proceedings of the Seventh ACM Symposium on Cloud ComputingDistributed applications and web services, such as online stores or social networks, are expected to be scalable, available, responsive, and fault-tolerant. To meet these steep requirements in the face of high round-trip latencies, network partitions, ...
On Mixing Eventual and Strong Consistency: Acute Cloud Types
In this article we study the properties of distributed systems that mix eventual and strong consistency. We formalize such systems through <italic>acute cloud types</italic> (ACTs), abstractions similar to conflict-free replicated data types (CRDTs), ...
ConSysT: tunable, safe consistency meets object-oriented programming
FTfJP '20: Proceedings of the 22nd ACM SIGPLAN International Workshop on Formal Techniques for Java-Like ProgramsData replication is essential in scenarios like geo-distributed datacenters, but poses challenges for data consistency. Developers adopt Strong consistency at the cost of performance or embrace Weak consistency and face a higher programming complexity. ...
Comments