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

Pluggable scheduling for the reactor programming model

Published:30 October 2016Publication History

ABSTRACT

The reactor model is a foundational programming model for distributed computing, whose focus is modularizing and composing computations and message protocols. Previous work on reactors dealt mainly with the programming model and its composability properties, but did not show how to schedule computations in reactor-based programs.

In this paper, we propose a pluggable scheduling algorithm for the reactor model. The algorithm is customizable with user-defined scheduling policies. We define and prove safety and progress properties. We compare our implementation against the Akka actor framework, and show up to 3× performance improvements on standard actor benchmarks.

References

  1. G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986. ISBN 0-262-01092-5. Akka. Akka Documentation, 2015. http://akka.io/docs/. Erlang. Erlang/OTP documentation, 2015. http://www.erlang.org/. A. Georges, D. Buytaert, and L. Eeckhout. Statistically Rigorous Java Performance Evaluation. SIGPLAN Not., 42(10):57–76, Oct. 2007. ISSN 0362-1340. doi: 10.1145/1297105.1297033. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. Guerraoui and L. Rodrigues. Introduction to Reliable Distributed Programming. Springer. ISBN 978-3-540-28845-9. 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
  3. S. M. Imam and V. Sarkar. Savina - An Actor Benchmark Suite: Enabling Empirical Evaluation of Actor Libraries. AGERE! ’14. ACM, 2014a. ISBN 978-1-4503-2189-1. doi: 10.1145/2687357.2687368. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. M. Imam and V. Sarkar. Selectors: Actors with Multiple Guarded Mailboxes. AGERE! ’14, pages 1–14, New York, NY, USA, 2014b. ACM. ISBN 978-1-4503-2189-1. doi: 10.1145/2687357.2687360. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Lea. A Java Fork/Join Framework. JAVA ’00. ACM, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. ISBN 1-58113-288-3. doi: 10.1145/337449.337465.Google ScholarGoogle Scholar
  7. M. Odersky and al. An Overview of the Scala Programming Language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.Google ScholarGoogle Scholar
  8. K. Pinte, A. Lombide Carreton, E. Gonzalez Boix, and W. Meuter. Ambient Clouds: Reactive Asynchronous Collections for Mobile Ad Hoc Network Applications. Springer, 2013. ISBN 978- 3-642-38540-7. doi: 10.1007/978-3-642-38541-4. A. Prokopec. ScalaMeter, 2014. http://scalameter.github.io. A. Prokopec. SnapQueue: Lock-Free Queue with Constant Time Snapshots. Scala ’15, 2015. doi: 10.1145/2774975.2774976.Google ScholarGoogle Scholar
  9. A. Prokopec. Reactors.IO Website, 2016. https://reactors.io. A. Prokopec and M. Odersky. Isolates, Channels, and Event Streams for Composable Distributed Programming. Onward! 2015, pages 171–182, New York, NY, USA, 2015. ACM. ISBN 978-1-4503-3688-8. doi: 10.1145/2814228.2814245. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Prokopec, P. Haller, and M. Odersky. Containers and Aggregates, Mutators and Isolates for Reactive Programming. SCALA ’14. ACM, 2014. doi: 10.1145/2637647.2637656. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Scholliers, E. Tanter, and W. De Meuter. Parallel Actor Monitors: Disentangling Task-level Parallelism from Data Partitioning in the Actor Model. Sci. Comput. Program., 80:52–64, Feb. 2014. ISSN 0167-6423. doi: 10.1016/j.scico.2013.03.011. 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
  12. S. Srinivasan and A. Mycroft. Kilim: Isolation-Typed Actors for Java, pages 104–128. Springer, Berlin, Heidelberg, 2008. doi: 10.1007/978-3-540-70592-5. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Pluggable scheduling for the reactor programming model

        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

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader