Abstract
Geographically distributed systems often rely on replicated eventually consistent data stores to achieve availability and performance. To resolve conflicting updates at different replicas, researchers and practitioners have proposed specialized consistency protocols, called replicated data types, that implement objects such as registers, counters, sets or lists. Reasoning about replicated data types has however not been on par with comparable work on abstract data types and concurrent data types, lacking specifications, correctness proofs, and optimality results.
To fill in this gap, we propose a framework for specifying replicated data types using relations over events and verifying their implementations using replication-aware simulations. We apply it to 7 existing implementations of 4 data types with nontrivial conflict-resolution strategies and optimizations (last-writer-wins register, counter, multi-value register and observed-remove set). We also present a novel technique for obtaining lower bounds on the worst-case space overhead of data type implementations and use it to prove optimality of 4 implementations. Finally, we show how to specify consistency of replicated stores with multiple objects axiomatically, in analogy to prior work on weak memory models. Overall, our work provides foundational reasoning tools to support research on replicated eventually consistent stores.
Supplemental Material
- Riak key-value store. http://basho.com/products/riak-overview/.Google Scholar
- S. V. Adve and K. Gharachorloo. Shared memory consistency models: A tutorial. Computer, 29(12), 1996. Google Scholar
Digital Library
- J. Alglave, D. Kroening, V. Nimal, and M. Tautschnig. Software verification for weak memory via program transformation. In ESOP, 2013. Google Scholar
Digital Library
- M. Batty, M. Dodds, and A. Gotsman. Library abstraction for C/C++ concurrency. In POPL, 2013. Google Scholar
Digital Library
- M. Batty, S. Owens, S. Sarkar, P. Sewell, and T.Weber. Mathematizing C++ concurrency. In POPL, 2011. Google Scholar
Digital Library
- A. Bieniusa, M. Zawirski, N. Preguiça, M. Shapiro, C. Baquero, V. Balegas, and S. Duarte. An optimized conflict-free replicated set. Technical Report 8083, INRIA, 2012.Google Scholar
- A. Bieniusa, M. Zawirski, N. M. Preguiça, M. Shapiro, C. Baquero, V. Balegas, and S. Duarte. Brief announcement: Semantics of eventually consistent replicated sets. In DISC, 2012. Google Scholar
Digital Library
- A.-M. Bosneag and M. Brockmeyer. A formal model for eventual consistency semantics. In IASTED PDCS, 2002.Google Scholar
- S. Burckhardt, R. Alur, and M. M. K. Martin. Checkfence: checking consistency of concurrent data types on relaxed memory models. In PLDI, 2007. Google Scholar
Digital Library
- S. Burckhardt, M. Fähndrich, D. Leijen, and B. P. Wood. Cloud types for eventual consistency. In ECOOP, 2012. Google Scholar
Digital Library
- S. Burckhardt, A. Gotsman, and H. Yang. Understanding eventual consistency. Technical Report MSR-TR-2013-39, Microsoft Research, 2013.Google Scholar
- S. Burckhardt, A. Gotsman, H. Yang, and M. Zawirski. Replicated data types: specification, verification, optimality (extended version), 2013. http://research.microsoft.com/apps/pubs/?id=201602. Google Scholar
Digital Library
- S. Burckhardt, D. Leijen, M. Fähndrich, and M. Sagiv. Eventually consistent transactions. In ESOP, 2012. Google Scholar
Digital Library
- B. Charron-Bost. Concerning the size of logical clocks in distributed systems. Information Processing Letters, 39(1), 1991. Google Scholar
Digital Library
- J.-Y. Chen and G. Pandurangan. Optimal gossip-based aggregate computation. In SPAA, 2010. Google Scholar
Digital Library
- N. Conway, R. Marczak, P. Alvaro, J. M. Hellerstein, and D. Maier. Logic and lattices for distributed programming. In SOCC, 2012. Google Scholar
Digital Library
- A. Fekete, D. Gupta, V. Luchangco, N. Lynch, and A. Shvartsman. Eventually-serializable data services. In PODC, 1996. Google Scholar
Digital Library
- G. DeCandia et al. Dynamo: Amazon's highly available key-value store. In SOSP, 2007. Google Scholar
Digital Library
- S. Gilbert and N. Lynch. Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News, 33(2), 2002. Google Scholar
Digital Library
- M. Helmi, L. Higham, E. Pacheco, and P.Woelfel. The space complexity of long-lived and one-shot timestamp implementations. In PODC, 2011. Google Scholar
Digital Library
- C. A. R. Hoare. Proof of correctness of data representations. Acta Inf., 1, 1972.Google Scholar
- L. Lamport. Time, clocks, and the ordering of events in a distributed system. Commun. ACM, 21(7), 1978. Google Scholar
Digital Library
- C. Li, D. Porto, A. Clement, R. Rodrigues, N. Preguiça, and J. Gehrke. Making geo-replicated systems fast if possible, consistent when necessary. In OSDI, 2012. Google Scholar
Digital Library
- H. Liang, X. Feng, and M. Fu. A rely-guarantee-based simulation for verifying concurrent program transformations. In POPL, 2012. Google Scholar
Digital Library
- B. Liskov and S. Zilles. Programming with abstract data types. In ACM Symposium on Very High Level Languages, 1974. Google Scholar
Digital Library
- F. Liu, N. Nedev, N. Prisadnikov, M. T. Vechev, and E. Yahav. Dynamic synthesis for relaxed memory models. In PLDI, 2012. Google Scholar
Digital Library
- W. Lloyd, M. J. Freedman, M. Kaminsky, and D. G. Andersen. Don't settle for eventual: scalable causal consistency for wide-area storage with COPS. In SOSP, 2011. Google Scholar
Digital Library
- J. Manson, W. Pugh, and S. V. Adve. The Java memory model. In POPL, 2005. Google Scholar
Digital Library
- F. Mattern. Virtual time and global states of distributed systems. Parallel and Distributed Algorithms, 1989.Google Scholar
- S. Moran, G. Taubenfeld, and I. Yadin. Concurrent counting. In PODC, 1992. Google Scholar
Digital Library
- H.-G. Roh, M. Jeon, J.-S. Kim, and J. Lee. Replicated abstract data types: Building blocks for collaborative applications. J. Parallel Distrib. Comput., 71(3), 2011. Google Scholar
Digital Library
- M. Shapiro, N. Preguiça, C. Baquero, and M. Zawirski. A comprehensive study of Convergent and Commutative Replicated Data Types. Technical Report 7506, INRIA, 2011.Google Scholar
Digital Library
- M. Shapiro, N. M. Preguiça, C. Baquero, and M. Zawirski. Conflictfree replicated data types. In SSS, 2011. Google Scholar
Digital Library
- Y. Sovran, R. Power, M. K. Aguilera, and J. Li. Transactional storage for geo-replicated systems. In SOSP, 2011. Google Scholar
Digital Library
- D. B. Terry, A. J. Demers, K. Petersen, M. Spreitzer, M. Theimer, and B. W. Welch. Session guarantees for weakly consistent replicated data. In PDIS, 1994. Google Scholar
Digital Library
- D. B. Terry, M. M. Theimer, K. Petersen, A. J. Demers, M. J. Spreitzer, and C. H. Hauser. Managing update conflicts in Bayou, a weakly connected replicated storage system. In SOSP, 1995. Google Scholar
Digital Library
- M. Zawirski, A. Bieniusa, V. Balegas, S. Duarte, C. Baquero, M. Shapiro, and N. Preguiça. SwiftCloud: Fault-tolerant georeplication integrated all the way to the client machine. Technical Report 8347, INRIA, 2013.Google Scholar
Index Terms
Replicated data types: specification, verification, optimality
Recommendations
Replicated data types: specification, verification, optimality
POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesGeographically distributed systems often rely on replicated eventually consistent data stores to achieve availability and performance. To resolve conflicting updates at different replicas, researchers and practitioners have proposed specialized ...
Conflict-free replicated data types
SSS'11: Proceedings of the 13th international conference on Stabilization, safety, and security of distributed systemsReplicating data under Eventual Consistency (EC) allows any replica to accept updates without remote synchronisation. This ensures performance and scalability in large-scale distributed systems (e.g., clouds). However, published EC approaches are ad-hoc ...
Reversible conflict-free replicated data types
Middleware '22: Proceedings of the 23rd ACM/IFIP International Middleware ConferenceConflict-free replicated data types (CRDTs) are popular for optimistic replication and ensuring strong eventual consistency (SEC) in distributed systems. However, reversibility is an underdeveloped functionality for CRDTs, despite its usefulness in ...







Comments