skip to main content
10.1145/2814228.2814245acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Isolates, channels, and event streams for composable distributed programming

Published:21 October 2015Publication History

ABSTRACT

The actor model has been a model of choice for building reliable distributed systems. On one hand, it ensures that message-processing is serialized within each actor, preserving the familiar sequential programming model. On the other hand, programs written in the actor model are location-transparent. The model is sufficiently low-level to express arbitrary message protocols. Composing these protocols is the key to high-level abstractions. Unfortunately, it is difficult to reuse or compose message protocols with actors. Reactive isolates, proposed in this paper, simplify protocol composition with first-class typed channels and event streams. We compare reactive isolates and the actor model on concrete programs. We identify obstacles for composition in the classic actor model, and show how to overcome them. We then show how to build reusable, composable distributed computing components in the new model.

References

  1. Dart programming language, 2011. http://www.dartlang.org/.Google ScholarGoogle Scholar
  2. Akka documentation, 2015. http://akka.io/docs/.Google ScholarGoogle Scholar
  3. Erlang/OTP documentation, 2015. http://www.erlang.org/.Google ScholarGoogle Scholar
  4. Reactive Collections, 2015. https://reactive-collections.com.Google ScholarGoogle Scholar
  5. G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, USA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. N. Amin, A. Moors, and M. Odersky. Dependend object types. In 19th Internation Workshop on Foundations of Object-Oriented Languages, 2012.Google ScholarGoogle Scholar
  7. J. Armstrong. Making Reliable Distributed Systems in the Presence of Software Errors. PhD thesis, The Royal Institute of Technology, Stockholm, Sweden, December 2003.Google ScholarGoogle Scholar
  8. V. Cremet, F. Garillot, S. Lenglet, and M. Odersky. A core calculus for scala type checking. In Proceedings of the 31st International Conference on Mathematical Foundations of Computer Science, MFCS’06, pages 1–23, Berlin, Heidelberg, 2006. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. V. Cutsem, S. Mostinckx, E. G. Boix, J. Dedecker, and W. D. Meuter. AmbientTalk: Object-oriented event-driven programming in mobile ad hoc networks. In Proceedings of the XXVI International Conference of the Chilean Society of Computer Science, SCCC ’07, pages 3–12, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Dean and S. Ghemawat. MapReduce: Simplified data processing on large clusters. Commun. ACM, 51(1):107–113, Jan. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. E. W. Dijkstra. Letters to the editor: Go to statement considered harmful. Commun. ACM, 11(3):147–148, Mar. 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. J. Fidge. Timestamps in message-passing systems that preserve the partial ordering. Proceedings of the 11th Australian Computer Science Conference, 10(1):56–66, 1988.Google ScholarGoogle Scholar
  13. R. Guerraoui and L. Rodrigues. Introduction to reliable distributed programming. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. P. Haller and M. Odersky. Event-based programming without inversion of control. In Proc. Joint Modular Languages Conference, Springer LNCS, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. P. Haller, A. Prokopec, H. Miller, V. Klang, R. Kuhn, and V. Jovanovic. Scala improvement proposal: Futures and promises (SIP-14). 2012.Google ScholarGoogle Scholar
  16. S. M. Imam and V. Sarkar. Selectors: Actors with multiple guarded mailboxes. In Proceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized Control, AGERE! 2014, Portland, OR, USA, October 20, 2014, pages 1––14, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Kreps, N. Narkhede, and J. Rao. Kafka: A distributed messaging system for log processing. In Proceedings of 6th International Workshop on Networking Meets Databases (NetDB), Athens, Greece, 2011.Google ScholarGoogle Scholar
  18. L. Lamport. The part-time parliament. ACM Trans. Comput. Syst., 16(2):133–169, May 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. N. A. Lynch. Distributed Algorithms. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. E. Meijer. Your mouse is a database. Commun. ACM, 55(5):66–73, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. E. Meijer, M. Fokkinga, and R. Paterson. Functional programming with bananas, lenses, envelopes and barbed wire. In Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture, pages 124–144. Springer-Verlag, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Odersky and al. An overview of the Scala programming language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.Google ScholarGoogle Scholar
  23. M. Odersky and A. Moors. Fighting bit rot with types (experience report: Scala collections). In FSTTCS 2009, volume 4 of Leibniz International Proceedings in Informatics (LIPIcs), pages 427–451, Dagstuhl, Germany, 2009.Google ScholarGoogle Scholar
  24. B. C. Pierce. Types and Programming Languages. MIT Press, Cambridge, MA, USA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. K. Pinte, A. Lombide Carreton, E. Gonzalez Boix, and W. Meuter. Ambient Clouds: Reactive asynchronous collections for mobile ad hoc network applications. In J. Dowling and F. Taïani, editors, Distributed Applications and Interoperable Systems, volume 7891 of Lecture Notes in Computer Science, pages 85–98. Springer Berlin Heidelberg, 2013.Google ScholarGoogle Scholar
  26. N. M. Preguiça, J. M. Marquès, M. Shapiro, and M. Letia. A commutative replicated data type for cooperative editing. In 29th IEEE International Conference on Distributed Computing Systems (ICDCS 2009), 22-26 June 2009, Montreal, Québec, Canada, pages 395–403, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Prokopec. Snapqueue: lock-free queue with constant time snapshots. In Proceedings of the 6th ACM SIGPLAN Symposium on Scala, Scala 2015, Portland, OR, USA, June 15-17, 2015, pages 1–12, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. Prokopec, P. Haller, and M. Odersky. Containers and aggregates, mutators and isolates for reactive programming. In Proceedings of the Fifth Annual Scala Workshop, SCALA ’14, pages 51–61. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. A. Prokopec, H. Miller, T. Schlatter, P. Haller, and M. Odersky. Flowpools: A lock-free deterministic concurrent dataflow abstraction. In LCPC, pages 158–173, 2012.Google ScholarGoogle Scholar
  30. R. Schollmeier. A definition of peer-to-peer networking for the classification of peer-to-peer architectures and applications. In Proceedings of the First International Conference on Peer-to-Peer Computing, P2P ’01, pages 101–, Washington, DC, USA, 2001. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. Shapiro, N. Preguiça, C. Baquero, and M. Zawirski. A comprehensive study of Convergent and Commutative Replicated Data Types. Research Report RR-7506, Jan. 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. R. Virding, C. Wikström, and M. Williams. Concurrent Programming in ERLANG (2Nd Ed.). Prentice Hall International (UK) Ltd., Hertfordshire, UK, UK, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. J. White. High-level framework for network-based resource sharing. RFC 707, Dec. 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. Mc-Cauley, M. J. Franklin, S. Shenker, and I. Stoica. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. In Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation, NSDI’12, pages 2–2, Berkeley, CA, USA, 2012. USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Isolates, channels, and event streams for composable distributed programming

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        Onward! 2015: 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)
        October 2015
        307 pages
        ISBN:9781450336888
        DOI:10.1145/2814228

        Copyright © 2015 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 21 October 2015

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate40of105submissions,38%

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader