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

Encoding the building blocks of communication

Published:25 October 2017Publication History

ABSTRACT

Distributed systems are often built from the simplest building blocks such as message sends and RPCs. Since many communication patterns have to be reinvented every time a distributed system is created, implementing a high-level system is usually expensive. The recently proposed reactor model alleviates this cost by expressing distributed computations as reusable components, however, encodings for various communications patterns in this model are missing.

This paper investigates how to encode the router, client-server, scatter-gather, rendezvous, two-way communication, reliable communication and the backpressure protocol in the reactor model. These protocols are used to implement the core of a distributed streaming framework, and the performance of these implementations is evaluated.

References

  1. 2015. Erlang/OTP Documentation. (2015). http://www.erlang.org/Google ScholarGoogle Scholar
  2. 2016. Akka Documentation. (2016). http://akka.io/docs/Google ScholarGoogle Scholar
  3. 2016. Akka Streams Documentation. (2016). http://doc.akka.io/docs/ akka/2.4.3/scala/stream/index.htmlGoogle ScholarGoogle Scholar
  4. 2016. Reactive Streams. (2016). http://www.reactive-streams.org/Google ScholarGoogle Scholar
  5. 2016. Reactors.IO website. (2016). http://reactors.io/Google ScholarGoogle Scholar
  6. Gul Agha. 1986. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, USA.Google ScholarGoogle ScholarCross RefCross Ref
  7. Nir Ailon, Ragesh Jaiswal, and Claire Monteleoni. 2009. Streaming k-means approximation. In NIPS.Google ScholarGoogle Scholar
  8. Cosmin Arad, Jim Dowling, and Seif Haridi. 2012. Message-passing Concurrency for Scalable, Stateful, Reconfigurable Middleware. In Proceedings of the 13th International Middleware Conference (Middleware ’12). Springer-Verlag New York, Inc., New York, NY, USA, 208–228.Google ScholarGoogle Scholar
  9. J.-P. Briot. 1988. From Objects to Actors: Study of a Limited Symbiosis in Smalltalk-80. In Proceedings of the 1988 ACM SIGPLAN Workshop on Object-based Concurrent Programming (OOPSLA/ECOOP ’88). ACM, New York, NY, USA, 69–72. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Paris Carbone, Asterios Katsifodimos, Stephan Ewen, Volker Markl, Seif Haridi, and Kostas Tzoumas. 2015. Apache Flink™: Stream and Batch Processing in a Single Engine. IEEE Data Eng. Bull. 38, 4 (2015), 28–38. http://sites.computer.org/debull/A15dec/p28.pdfGoogle ScholarGoogle Scholar
  11. Graham Cormode and S. Muthukrishnan. 2005. An Improved Data Stream Summary: The Count-min Sketch and Its Applications. J. Algorithms 55, 1 (April 2005), 58–75. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Tom Van Cutsem, Elisa Gonzalez Boix, Christophe Scholliers, Andoni Lombide Carreton, Dries Harnie, Kevin Pinte, and Wolfgang De Meuter. 2014. AmbientTalk: programming responsive mobile peerto-peer applications with actors. Computer Languages, Systems and Structures, SCI Impact factor in 2013: 0.296, 5 year impact factor 0.329 (to appear) (2014).Google ScholarGoogle Scholar
  13. Iulian Dragos and Martin Odersky. 2009. Compiling generics through user-directed type specialization. In Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems (ICOOOLPS ’09). ACM, New York, NY, USA, 42–47. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Patrick Th. Eugster, Pascal A. Felber, Rachid Guerraoui, and AnneMarie Kermarrec. 2003. The Many Faces of Publish/Subscribe. ACM Comput. Surv. 35, 2 (June 2003), 114–131. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Philippe Flajolet, ÃĽric Fusy, Olivier Gandouet, and et al. 2007. Hyperloglog: The analysis of a near-optimal cardinality estimation algorithm. In IN AOFA âĂŹ07: PROCEEDINGS OF THE 2007 INTERNATIONAL CONFERENCE ON ANALYSIS OF ALGORITHMS.Google ScholarGoogle Scholar
  16. Message Passing Interface Forum. 2012. MPI: A Message-Passing Interface Standard Version 3.0. (09 2012). Chapter author for Collective Communication, Process Topologies, and One Sided Communications.Google ScholarGoogle Scholar
  17. Cédric Fournet and Georges Gonthier. 2002. The Join Calculus: A Language for Distributed Mobile Programming. Springer Berlin Heidelberg, Berlin, Heidelberg, 268–332. DOI: Google ScholarGoogle ScholarCross RefCross Ref
  18. Andy Georges, Dries Buytaert, and Lieven Eeckhout. 2007. Statistically Rigorous Java Performance Evaluation. SIGPLAN Not. 42, 10 (Oct. 2007), 57–76. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J.Y. Girard. 1972. Interprétation fonctionnelle et élimination des coupures de l’arithmétique d’ordre supérieur. https://books.google.hr/books?id= IRcVHAAACAAJGoogle ScholarGoogle Scholar
  20. Rachid Guerraoui and Luís Rodrigues. 2006. Introduction to reliable distributed programming. Springer.Google ScholarGoogle Scholar
  21. Philipp Haller and Martin Odersky. 2006. Event-Based Programming without Inversion of Control. In Proc. Joint Modular Languages Conference (Springer LNCS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Philipp Haller, Aleksandar Prokopec, Heather Miller, Viktor Klang, Roland Kuhn, and Vojin Jovanovic. 2012. Scala Improvement Proposal: Futures and Promises (SIP-14). http://docs.scala-lang.org/sips/ pending/futures-promises.htmlGoogle ScholarGoogle Scholar
  23. Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ali Ghodsi, Anthony D. Joseph, Randy Katz, Scott Shenker, and Ion Stoica. 2011. Mesos: A Platform for Fine-grained Resource Sharing in the Data Center. In Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation (NSDI’11). USENIX Association, Berkeley, CA, USA, 295–308. http://dl.acm.org/citation.cfm?id=1972457.1972488Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. A. R. Hoare. 1978. Communicating Sequential Processes. Commun. ACM 21, 8 (Aug. 1978), 666–677. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Shams M. Imam and Vivek Sarkar. 2014. Selectors: Actors with Multiple Guarded Mailboxes. In Proceedings of the 4th International Workshop on Programming Based on Actors Agents and Decentralized Control (AGERE! ’14). ACM, New York, NY, USA, 1–14. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Nancy A. Lynch. 1996. Distributed Algorithms. MK Publishers Inc., San Francisco, CA, USA.Google ScholarGoogle Scholar
  27. Erik Meijer. 2012. Your Mouse is a Database. Commun. ACM 55, 5 (May 2012), 66–73. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Robin Milner, Joachim Parrow, and David Walker. 1992. A Calculus of Mobile Processes, I. Inf. Comput. 100, 1 (Sept. 1992), 1–40. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Thomas D. Newton. 1987. An implementation of Ada tasking. (1987).Google ScholarGoogle Scholar
  30. Martin Odersky. 2002. An Introduction to Functional Nets. Springer Berlin Heidelberg, Berlin, Heidelberg, 333–377. DOI: Google ScholarGoogle ScholarCross RefCross Ref
  31. Martin Odersky and al. 2004. An Overview of the Scala Programming Language. Technical Report IC/2004/64. EPFL Lausanne, Switzerland.Google ScholarGoogle Scholar
  32. Benjamin C. Pierce. 2002. Types and Programming Languages. MIT Press, Cambridge, MA, USA.Google ScholarGoogle Scholar
  33. Rob Pike, Dave Presotto, Ken Thompson, and Gerard Holzmann. 1991. Process Sleep and Wakeup on a Shared-memory Multiprocessor. (1991).Google ScholarGoogle Scholar
  34. Aleksandar Prokopec. 2014. ScalaMeter Website. (2014). http:// scalameter.github.ioGoogle ScholarGoogle Scholar
  35. Aleksandar Prokopec. 2016. Pluggable Scheduling for the Reactor Programming Model. In Proceedings of the 6th International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE 2016). ACM, New York, NY, USA, 41–50. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Aleksandar Prokopec, Philipp Haller, and Martin Odersky. 2014. Containers and Aggregates, Mutators and Isolates for Reactive Programming. In Proceedings of the Fifth Annual Scala Workshop (SCALA ’14). ACM, 51–61. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Aleksandar Prokopec and Martin Odersky. 2015. Isolates, Channels, and Event Streams for Composable Distributed Programming. In 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!) (Onward! 2015). ACM, New York, NY, USA, 171–182.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Shreedhar and George Varghese. 1995. Efficient Fair Queueing Using Deficit Round Robin. SIGCOMM Comput. Commun. Rev. 25, 4 (Oct. 1995), 231–242. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Sriram Srinivasan and Alan Mycroft. 2008. Kilim: Isolation-Typed Actors for Java. Springer Berlin Heidelberg, Berlin, Heidelberg, 104– 128. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Robert Virding, Claes Wikström, and Mike Williams. 1996. Concurrent Programming in ERLANG (2nd Ed.). Prentice Hall International (UK) Ltd., Hertfordshire, UK, UK.Google ScholarGoogle Scholar
  41. Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, and Ion Stoica. 2012. 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). USENIX Association, Berkeley, CA, USA, 2–2. http://dl.acm.org/citation.cfm?id=2228298.2228301Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin, Scott Shenker, and Ion Stoica. 2010. Spark: Cluster Computing with Working Sets. In Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing (HotCloud’10). USENIX Association, Berkeley, CA, USA, 10–10. http://dl.acm.org/citation.cfm?id=1863103.1863113Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Matei Zaharia, Tathagata Das, Haoyuan Li, Timothy Hunter, Scott Shenker, and Ion Stoica. 2013. Discretized Streams: Fault-tolerant Streaming Computation at Scale. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP ’13). ACM, New York, NY, USA, 423–438. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Encoding the building blocks of communication

      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! 2017: Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
        October 2017
        261 pages
        ISBN:9781450355308
        DOI:10.1145/3133850

        Copyright © 2017 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: 25 October 2017

        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