Cloud Types for Eventual Consistency

  • Sebastian Burckhardt
  • Manuel Fähndrich
  • Daan Leijen
  • Benjamin P. Wood
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7313)


Mobile devices commonly access shared data stored on a server. To ensure responsiveness, many applications maintain local replicas of the shared data that remain instantly accessible even if the server is slow or temporarily unavailable. Despite its apparent simplicity and commonality, this scenario can be surprisingly challenging. In particular, a correct and reliable implementation of the communication protocol and the conflict resolution to achieve eventual consistency is daunting even for experts.

To make eventual consistency more programmable, we propose the use of specialized cloud data types. These cloud types provide eventually consistent storage at the programming language level, and thus abstract the numerous implementation details (servers, networks, caches, protocols). We demonstrate (1) how cloud types enable simple programs to use eventually consistent storage without introducing undue complexity, and (2) how to provide cloud types using a system and protocol comprised of multiple servers and clients.


Eventual Consistency Cloud Storage Cloud Type Round Number Main Server 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Burckhardt, S., Leijen, D., Fähndrich, M., Sagiv, M.: Eventually Consistent Transactions. In: Seidl, H. (ed.) Programming Languages and Systems. LNCS, vol. 7211, pp. 67–86. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  2. 2.
    Burckhardt, S., Leijen, D.: Semantics of Concurrent Revisions. In: Barthe, G. (ed.) ESOP 2011. LNCS, vol. 6602, pp. 116–135. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  3. 3.
    Chen, P.P.-S.: The entity-relationship model toward a unified view of data. ACM Trans. Database Syst. 1, 9–36 (1976)CrossRefGoogle Scholar
  4. 4.
    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
  5. 5.
    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
  6. 6.
    Gray, J., Helland, P., O’Neil, P., Shasha, D.: The dangers of replication and a solution. SIGMOD Record 25, 173–182 (1996)CrossRefGoogle Scholar
  7. 7.
    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
  8. 8.
    Kaplan, H.: Persistent data structures. In: Handbook on Data Structures and Applications, pp. 241–246. CRC Press (1995)Google Scholar
  9. 9.
    Martin, A., Birrell, A., Harris, T., Isard, M.: Semantics of transactional memory and automatic mutual exclusion. In: Principles of Programming Languages (POPL), pp. 63–74 (2008)Google Scholar
  10. 10.
    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
  11. 11.
    Saito, Y., Shapiro, M.: Optimistic replication. ACM Computing Surveys 37, 42–81 (2005)CrossRefGoogle Scholar
  12. 12.
    Shapiro, M., Kemme, B.: Eventual consistency. In: Encyclopedia of Database Systems, pp. 1071–1072. Springer (2009)Google Scholar
  13. 13.
    Shapiro, M., Preguica, N., Baquero, C., Zawirski, M.: A comprehensive study of convergent and commutative replicated data types. Technical Report Rapport de recherche 7506, INRIA (2011)Google Scholar
  14. 14.
    Shapiro, M., Preguiça, N., Baquero, C., Zawirski, M.: Conflict-Free Replicated Data Types. In: Défago, X., Petit, F., Villain, V. (eds.) SSS 2011. LNCS, vol. 6976, pp. 386–400. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  15. 15.
    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
  16. 16.
    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
  17. 17.
    Tillmann, N., Moskal, M., de Halleux, J., Fähndrich, M.: Touchdevelop: Programming cloud-connected mobile devices via touchscreen. In: ONWARD 2011 at SPLASH (also available as Microsoft TechReport MSR-TR-2011-49) (2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Sebastian Burckhardt
    • 1
  • Manuel Fähndrich
    • 1
  • Daan Leijen
    • 1
  • Benjamin P. Wood
    • 2
  1. 1.Microsoft ResearchUSA
  2. 2.University of WashingtonUSA

Personalised recommendations