Abstract
When distributed clients query or update shared data, eventual consistency can provide better availability than strong consistency models. However, programming and implementing such systems can be difficult unless we establish a reasonable consistency model, i.e. some minimal guarantees that programmers can understand and systems can provide effectively.
To this end, we propose a novel consistency model based on eventually consistent transactions. Unlike serializable transactions, eventually consistent transactions are ordered by two order relations (visibility and arbitration) rather than a single order relation. To demonstrate that eventually consistent transactions can be effectively implemented, we establish a handful of simple operational rules for managing replicas, versions and updates, based on graphs called revision diagrams. We prove that these rules are sufficient to guarantee correct implementation of eventually consistent transactions. Finally, we present two operational models (single server and server pool) of systems that provide eventually consistent transactions.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Download to read the full chapter text
Chapter PDF
References
Abadi, M., Birrell, A., Harris, T., Isard, M.: Semantics of transactional memory and automatic mutual exclusion. In: Principles of Programming Languages, POPL (2008)
Burckhardt, S., Baldassin, A., Leijen, D.: Concurrent programming with revisions and isolation types. In: Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA (2010)
Burckhardt, S., Leijen, D., Fähndrich, M.: Roll forward, not back: A case for deterministic conflict resolution. In: Workshop on Determinism and Correctness in Parallel Progr. (2011)
Burckhardt, S., Leijen, D., Fähndrich, M., Sagiv, M.: Eventually consistent transactions (full version). Technical Report MSR-TR-2011-117, Microsoft (2011)
Burckhardt, S., Leijen, D., Yi, J., Sadowski, C., Ball, T.: Two for the price of one: A model for parallel and incremental computation (distinguished paper award). In: Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA (2011)
Burckhardt, S., Leijen, D.: Semantics of Concurrent Revisions. In: Barthe, G. (ed.) ESOP 2011. LNCS, vol. 6602, pp. 116–135. Springer, Heidelberg (2011); Full version as Microsoft Technical Report MSR-TR-2010-94
Decandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., Vogels, W.: Dynamo: amazon’s highly available key-value store. In: Symposium on Operating Systems Principles, pp. 205–220 (2007)
Fekete, A., Liarokapis, D., O’Neil, E., O’Neil, P., Shasha, D.: Making snapshot isolation serializable. ACM Trans. Database Syst. 30(2), 492–528 (2005)
Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News 33, 51–59 (2002)
Gray, J., Helland, P., O’Neil, P., Shasha, D.: The dangers of replication and a solution. Sigmod Record 25, 173–182 (1996)
Herlihy, M., Koskinen, E.: Transactional boosting: a methodology for highly-concurrent transactional objects. In: Principles and Practice of Parallel Programming, PPoPP (2008)
Imine, A., Rusinowitch, M., Oster, G., Molli, P.: Formal design and verification of operational transformation algorithms for copies convergence. Theoretical Computer Science 351, 167–183 (2006)
Kaplan, H.: Persistent data structures. In: Handbook on Data Structures and Applications, pp. 241–246. CRC Press (1995)
Koskinen, E., Parkinson, M., Herlihy, M.: Coarse-grained transactions. In: Principles of Programming Languages, POPL (2010)
Petersen, K., Spreitzer, M., Terry, D., Theimer, M., Demers, A.: Flexible update propagation for weakly consistent replication. Operating Systems Review 31, 288–301 (1997)
Saito, Y., Shapiro, M.: Optimistic replication. ACM Computing Surveys 37, 42–81 (2005)
Shapiro, M., Kemme, B.: Eventual consistency. In: Encyclopedia of Database Systems, pp. 1071–1072 (2009)
Shapiro, M., Preguia, N., Baquero, C., Zawirski, M.: Conflict-free replicated data types (2011)
Sun, C., Ellis, C.: Operational transformation in real-time group editors: issues, algorithms, and achievements. In: Conference on Computer Supported Cooperative Work, pp. 59–68 (1998)
Terry, D., Theimer, M., Petersen, K., Demers, A., Spreitzer, M., Hauser, C.: Managing update conflicts in bayou, a weakly connected replicated storage system. SIGOPS Oper. Syst. Rev. 29, 172–182 (1995)
Valdes, J., Tarjan, R., Lawler, E.: The recognition of series parallel digraphs. In: ACM Symposium on Theory of Computing, pp. 1–12 (1979)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Burckhardt, S., Leijen, D., Fähndrich, M., Sagiv, M. (2012). Eventually Consistent Transactions. In: Seidl, H. (eds) Programming Languages and Systems. ESOP 2012. Lecture Notes in Computer Science, vol 7211. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28869-2_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-28869-2_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-28868-5
Online ISBN: 978-3-642-28869-2
eBook Packages: Computer ScienceComputer Science (R0)