Eventually Consistent Transactions

  • Sebastian Burckhardt
  • Daan Leijen
  • Manuel Fähndrich
  • Mooly Sagiv
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7211)


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.


Partial Order Eventual Consistency Single Server Consistency Model Transactional Memory 
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.


  1. 1.
    Abadi, M., Birrell, A., Harris, T., Isard, M.: Semantics of transactional memory and automatic mutual exclusion. In: Principles of Programming Languages, POPL (2008)Google Scholar
  2. 2.
    Burckhardt, S., Baldassin, A., Leijen, D.: Concurrent programming with revisions and isolation types. In: Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA (2010)Google Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    Burckhardt, S., Leijen, D., Fähndrich, M., Sagiv, M.: Eventually consistent transactions (full version). Technical Report MSR-TR-2011-117, Microsoft (2011)Google Scholar
  5. 5.
    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)Google Scholar
  6. 6.
    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-94CrossRefGoogle Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News 33, 51–59 (2002)CrossRefGoogle Scholar
  10. 10.
    Gray, J., Helland, P., O’Neil, P., Shasha, D.: The dangers of replication and a solution. Sigmod Record 25, 173–182 (1996)CrossRefGoogle Scholar
  11. 11.
    Herlihy, M., Koskinen, E.: Transactional boosting: a methodology for highly-concurrent transactional objects. In: Principles and Practice of Parallel Programming, PPoPP (2008)Google Scholar
  12. 12.
    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)MathSciNetzbMATHCrossRefGoogle Scholar
  13. 13.
    Kaplan, H.: Persistent data structures. In: Handbook on Data Structures and Applications, pp. 241–246. CRC Press (1995)Google Scholar
  14. 14.
    Koskinen, E., Parkinson, M., Herlihy, M.: Coarse-grained transactions. In: Principles of Programming Languages, POPL (2010)Google Scholar
  15. 15.
    Petersen, K., Spreitzer, M., Terry, D., Theimer, M., Demers, A.: Flexible update propagation for weakly consistent replication. Operating Systems Review 31, 288–301 (1997)CrossRefGoogle Scholar
  16. 16.
    Saito, Y., Shapiro, M.: Optimistic replication. ACM Computing Surveys 37, 42–81 (2005)CrossRefGoogle Scholar
  17. 17.
    Shapiro, M., Kemme, B.: Eventual consistency. In: Encyclopedia of Database Systems, pp. 1071–1072 (2009)Google Scholar
  18. 18.
    Shapiro, M., Preguia, N., Baquero, C., Zawirski, M.: Conflict-free replicated data types (2011)Google Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    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)CrossRefGoogle Scholar
  21. 21.
    Valdes, J., Tarjan, R., Lawler, E.: The recognition of series parallel digraphs. In: ACM Symposium on Theory of Computing, pp. 1–12 (1979)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Sebastian Burckhardt
    • 1
  • Daan Leijen
    • 1
  • Manuel Fähndrich
    • 1
  • Mooly Sagiv
    • 2
  1. 1.Microsoft ResearchUSA
  2. 2.Tel-Aviv UniversityIsrael

Personalised recommendations