A Tour of Gallifrey, a Language for Geodistributed Programming

Authors Mae Milano , Rolph Recto, Tom Magrino, Andrew C. Myers

Thumbnail PDF


  • Filesize: 449 kB
  • 19 pages

Document Identifiers

Author Details

Mae Milano
  • Cornell University, Ithaca, NY, USA
Rolph Recto
  • Cornell University, Ithaca, NY, USA
Tom Magrino
  • Cornell University, Ithaca, NY, USA
Andrew C. Myers
  • Cornell University, Ithaca, NY, USA


We would like to thank Fabian Muehlboeck, Andrew Hirsch, the members of the Applied Programming Languages Group at Cornell University, and our anonymous SNAPL reviewers for their helpful feedback on drafts of this paper.

Cite AsGet BibTex

Mae Milano, Rolph Recto, Tom Magrino, and Andrew C. Myers. A Tour of Gallifrey, a Language for Geodistributed Programming. In 3rd Summit on Advances in Programming Languages (SNAPL 2019). Leibniz International Proceedings in Informatics (LIPIcs), Volume 136, pp. 11:1-11:19, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2019)


Programming efficient distributed, concurrent systems requires new abstractions that go beyond traditional sequential programming. But programmers already have trouble getting sequential code right, so simplicity is essential. The core problem is that low-latency, high-availability access to data requires replication of mutable state. Keeping replicas fully consistent is expensive, so the question is how to expose asynchronously replicated objects to programmers in a way that allows them to reason simply about their code. We propose an answer to this question in our ongoing work designing a new language, Gallifrey, which provides orthogonal replication through _restrictions_ with _merge strategies_, _contingencies_ for conflicts arising from concurrency, and _branches_, a novel concurrency control construct inspired by version control, to contain provisional behavior.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Cooperating communicating processes
  • Software and its engineering → Massively parallel systems
  • Software and its engineering → Distributed programming languages
  • programming languages
  • distributed systems
  • weak consistency
  • linear types


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Harold Abelson and Gerald Jay Sussman. https://www.xarg.org/ref/a/0262011530/. The MIT Press, July 1996.
  2. Gul Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, USA, 1986. Google Scholar
  3. Jonathan Aldrich, Valentin Kostadinov, and Craig Chambers. Alias annotations for program understanding. In 17superscriptth ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 311-330, 2002. Google Scholar
  4. Peter Alvaro, Peter Bailis, Neil Conway, and Joseph M. Hellerstein. http://dx.doi.org/10.1145/2523616.2523632. In ACM Symp. on Cloud Computing (SoCC), pages 23:1-23:10, 2013.
  5. Peter Alvaro, Neil Conway, Joseph M Hellerstein, and William R Marczak. Consistency Analysis in Bloom: a CALM and Collected Approach. In CIDR (Conference on Innovative Data Systems Research), pages 249-260, 2011. Google Scholar
  6. Malcolm Atkinson and Ronald Morrison. http://dl.acm.org/citation.cfm?id=615224.615226. The VLDB Journal, 4(3):319-402, July 1995.
  7. Peter Bailis, Alan Fekete, Michael J Franklin, Ali Ghodsi, Joseph M Hellerstein, and Ion Stoica. Coordination avoidance in database systems. Proceedings of the VLDB Endowment, 8(3):185-196, 2014. Google Scholar
  8. Mahesh Balakrishnan, Dahlia Malkhi, Vijayan Prabhakaran, Ted Wobbler, Michael Wei, and John D. Davis. https://www.usenix.org/conference/nsdi12/technical-sessions/presentation/balakrishnan. In 9superscriptth USENIX Symp. on Networked Systems Design and Implementation (NSDI), pages 1-14, San Jose, CA, 2012.
  9. Mahesh Balakrishnan, Dahlia Malkhi, Ted Wobber, Ming Wu, Vijayan Prabhakaran, Michael Wei, John D. Davis, Sriram Rao, Tao Zou, and Aviad Zuck. http://dx.doi.org/10.1145/2517349.2522732. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, 24superscriptth ACM Symp. on Operating System Principles (SOSP), 2013.
  10. Valter Balegas, Sérgio Duarte, Carla Ferreira, Rodrigo Rodrigues, Nuno Preguiça, Mahsa Najafzadeh, and Marc Shapiro. Putting consistency back into eventual consistency. In ACM SIGOPS/EuroSys European Conference on Computer Systems, page 6, 2015. Google Scholar
  11. Philip A. Bernstein, Vassco Hadzilacos, and Nathan Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1987. Google Scholar
  12. Adrian Birka and Michael D. Ernst. http://dx.doi.org/10.1145/1028976.1028980. In Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA '04, pages 35-49, New York, NY, USA, 2004.
  13. Chandrasekhar Boyapati, Robert Lee, and Martin Rinard. http://dx.doi.org/10.1145/582419.582440. In Proceedings of the 17th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA '02, pages 211-230, New York, NY, USA, 2002.
  14. Chandrasekhar Boyapati, Barbara Liskov, and Liuba Shrira. http://dx.doi.org/10.1145/604131.604156. In Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '03, pages 213-223, New York, NY, USA, 2003.
  15. Chandrasekhar Boyapati and Martin Rinard. A parameterized type system for race-free Java programs. In 16superscriptth ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), Tampa Bay, FL, October 2001. Google Scholar
  16. Sebastian Burckhardt, Alexandro Baldassin, and Daan Leijen. http://dx.doi.org/10.1145/1869459.1869515. In 25superscriptth ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), OOPSLA '10, pages 691-707, New York, NY, USA, 2010.
  17. Sebastian Burckhardt, Manuel Fähndrich, Daan Leijen, and Benjamin P Wood. Cloud types for eventual consistency. In European Conference on Object-Oriented Programming, pages 283-307. Springer, 2012. Google Scholar
  18. Working Draft, Standard for Programming Language C++. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf, 2011. Google Scholar
  19. Kevin Clancy and Heather Miller. Monotonicity Types for Distributed Dataflow. In Proceedings of the 2nd Workshop on Programming Models and Languages for Distributed Computing, PMLDC '17, 2017. Google Scholar
  20. Dave Clarke, Tobias Wrigstad, Johan Östlund, and Einar Broch Johnsen. Minimal ownership for active objects. In Asian Symposium on Programming Languages and Systems, pages 139-154. Springer, 2008. Google Scholar
  21. David G Clarke, John M Potter, and James Noble. Ownership types for flexible alias protection. In ACM SIGPLAN Notices, volume 33(10), pages 48-64, 1998. Google Scholar
  22. Sylvan Clebsch, Sophia Drossopoulou, Sebastian Blessing, and Andy McNeil. http://dx.doi.org/10.1145/2824815.2824816. In 5superscriptth Int'l Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE!), pages 1-12, 2015.
  23. Natacha Crooks, Youer Pu, Nancy Estrada, Trinabh Gupta, Lorenzo Alvisi, and Allen Clement. Tardis: A branch-and-merge approach to weak consistency. In ACM SIGMOD Int'l Conf. on Management of Data, pages 1615-1628, 2016. Google Scholar
  24. David Cunningham, Sophia Drossopoulou, and Susan Eisenbach. Universes for race safety. Verification and Analysis of Multi-threaded Java-like Programs (VAMP), pages 20-51, 2007. Google Scholar
  25. Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. Dynamo: Amazon’s Highly Available Key-Value Store. In 21superscriptst ACM Symp. on Operating System Principles (SOSP), 2007. Google Scholar
  26. Manuel Fähndrich and Robert DeLine. Adoption and Focus: Practical Linear Types for Imperative Programming. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI), June 2002. Google Scholar
  27. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. https://www.xarg.org/ref/a/0262062186/. The MIT Press, February 2001.
  28. Cormac Flanagan and Martin Abadi. Types for safe locking. In European Symposium on Programming, pages 91-108. Springer, 1999. Google Scholar
  29. Matthew Fluet, Greg Morrisett, and Amal Ahmed. Linear regions are all you need. In European Symposium on Programming, pages 7-21. Springer, 2006. Google Scholar
  30. Colin S Gordon, Matthew J Parkinson, Jared Parsons, Aleks Bromfield, and Joe Duffy. Uniqueness and reference immutability for safe parallelism. In ACM SIGPLAN Notices, volume 47(10), pages 21-40, 2012. Google Scholar
  31. Dan Grossman. Type-Safe Multithreading in Cyclone. In ACM SIGPLAN Int'l Workshop on Types in Languages Design and Implementation (TLDI), pages 13-25, 2003. Google Scholar
  32. Rachid Guerraoui, Matej Pavlovic, and Dragos-Adrian Seredinschi. Incremental consistency guarantees for replicated objects. In 12superscriptth USENIX Symp. on Operating Systems Design and Implementation (OSDI), pages 169-184, 2016. Google Scholar
  33. Philipp Haller and Martin Odersky. Capabilities for uniqueness and borrowing. In European Conference on Object-Oriented Programming, pages 354-378. Springer, 2010. Google Scholar
  34. Pat Helland and Dave Campbell. Building on Quicksand. CIDR (Conference on Innovative Data Systems Research), 2009. Google Scholar
  35. Farzin Houshmand and Mohsen Lesani. Hamsaz: replication coordination analysis and synthesis. ACM on Programming Languages (PACM), 3(POPL):74, 2019. Google Scholar
  36. Lindsey Kuper and Ryan R Newton. LVars: Lattice-based data structures for deterministic parallelism. In Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing, pages 71-84, 2013. Google Scholar
  37. Leslie Lamport. http://dx.doi.org/10.1145/279227.279229. ACM Trans. on Computer Systems, 16(2):133-169, May 1998.
  38. Jed Liu, Michael D. George, K. Vikram, Xin Qi, Lucas Waye, and Andrew C. Myers. http://www.cs.cornell.edu/andru/papers/fabric-sosp09.html. In 22superscriptnd ACM Symp. on Operating System Principles (SOSP), pages 321-334, October 2009.
  39. Wyatt Lloyd, Michael J. Freedman, Michael Kaminsky, and David G. Andersen. Don't settle for eventual: scalable causal consistency for wide-area storage with COPS. In 23superscriptrd ACM Symp. on Operating System Principles (SOSP), 2011. Google Scholar
  40. Tom Magrino, Jed Liu, Nate Foster, Johannes Gehrke, and Andrew C. Myers. Efficient, Consistent Distributed Computation with Predictive Treaties. In ACM SIGOPS/EuroSys European Conference on Computer Systems, March 2019. Google Scholar
  41. Christopher Meiklejohn and Peter Van Roy. http://dx.doi.org/10.1145/2790449.2790525. In Int'l Symp. on Principles and Practice of Declarative Programming, pages 184-195, 2015.
  42. Mae Milano and Andrew C Myers. MixT: a language for mixing consistency in geodistributed transactions. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 226-241, 2018. Google Scholar
  43. Ligia Nistor, Darya Kurilova, Stephanie Balzer, Benjamin Chung, Alex Potanin, and Jonathan Aldrich. Wyvern: A simple, typed, and pure object-oriented language. In 5superscriptth Workshop on Mechanisms for Specialization, Generalization and Inheritance., July 2013. Google Scholar
  44. Diego Ongaro and John Ousterhout. https://www.usenix.org/conference/atc14/technical-sessions/presentation/ongaro. In 2014 USENIX Annual Technical Conference (USENIX ATC 14), pages 305-319, Philadelphia, PA, 2014.
  45. Gene Pang, Tim Kraska, Michael J. Franklin, and Alan Fekete. http://dx.doi.org/10.1145/2588555.2588558. In International Conference on Management of Data, SIGMOD 2014, Snowbird, UT, USA, June 22-27, 2014, pages 3-14, 2014.
  46. Benjamin C. Pierce. https://www.xarg.org/ref/a/0262162091/. The MIT Press, February 2002.
  47. Nuno Preguiça, J. Legatheaux Martins, Miguel Cunha, and Henrique Domingos. http://dx.doi.org/10.1145/1066116.1189038. In Proceedings of the 1st International Conference on Mobile Systems, Applications and Services, MobiSys '03, pages 43-56, New York, NY, USA, 2003.
  48. Sudip Roy, Lucja Kot, Gabriel Bender, Bailu Ding, Hossein Hojjat, Christoph Koch, Nate Foster, and Johannes Gehrke. The homeostasis protocol: Avoiding transaction coordination through program analysis. In ACM SIGMOD Int'l Conf. on Management of Data, pages 1311-1326, 2015. Google Scholar
  49. http://doc.rust-lang.org/0.11.0/rust.html. http://doc.rust-lang.org/0.11.0/rust.html, 2014. URL: http://doc.rust-lang.org/0.11.0/rust.html.
  50. Andrei Sabelfeld and Andrew C. Myers. http://www.cs.cornell.edu/andru/papers/jsac/sm-jsac03.pdf. IEEE Journal on Selected Areas in Communications, 21(1):5-19, January 2003.
  51. Hans-Jürgen Schönig. PostgreSQL Replication. Packt Publishing Ltd, 2015. Google Scholar
  52. Marc Shapiro. http://dx.doi.org/10.1007/978-1-4899-7993-3_80813-1. In Ling Liu and M. Tamer Özsu, editors, Encyclopedia of Database Systems, pages 1-5. Springer New York, New York, NY, 2017.
  53. Krishnamoorthy C Sivaramakrishnan, Gowtham Kaki, and Suresh Jagannathan. Declarative programming over eventually consistent data stores. In ACM SIGPLAN Notices, volume 50(6), pages 413-424, 2015. Google Scholar
  54. Sriram Srinivasan and Alan Mycroft. Kilim: Isolation-typed actors for Java. In European Conference on Object-Oriented Programming, pages 104-128. Springer, 2008. Google Scholar
  55. Doug Terry. http://dx.doi.org/10.1145/2500500. Commun. ACM, 56(12):82-89, December 2013.
  56. Douglas B. Terry, Marvin M. Theimer, Karin Petersen, Alan J. Demers, and Mike J. Spreitzer. Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System. In 15superscriptth ACM Symp. on Operating System Principles (SOSP), pages 172-183, December 1995. Google Scholar
  57. Michael Whittaker and Joseph M Hellerstein. Interactive checks for coordination avoidance. Proceedings of the VLDB Endowment, 12(1):14-27, 2018. Google Scholar
Questions / Remarks / Feedback

Feedback for Dagstuhl Publishing

Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail