Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3141865.3141866acmconferencesArticle/Chapter ViewAbstractPublication PagessepsConference Proceedingsconference-collections
research-article

Transactional actors: communication in transactions

Published: 23 October 2017 Publication History
  • Get Citation Alerts
  • Abstract

    Developers often require different concurrency models to fit the various concurrency needs of the different parts of their applications. Many programming languages, such as Clojure, Scala, and Haskell, cater to this need by incorporating different concurrency models. It has been shown that, in practice, developers often combine these concurrency models. However, they are often combined in an ad hoc way and the semantics of the combination is not always well-defined. The starting hypothesis of this paper is that different concurrency models need to be carefully integrated such that the properties of each individual model are still maintained.
    This paper proposes one such combination, namely the combination of the actor model and software transactional memory. In this paper we show that, while both individual models offer strong safety guarantees, these guarantees are no longer valid when they are combined. The main contribution of this paper is a novel hybrid concurrency model called transactional actors that combines both models while preserving their guarantees. This paper also presents an implementation in Clojure and an experimental evaluation of the performance of the transactional actor model.

    References

    [1]
    G. A. Agha. 1985. Actors: a model of concurrent computation in distributed systems. Ph.D. Dissertation. MIT.
    [2]
    G. A. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. 1997. A Foundation for Actor Computation. Journal of Functional Programming 7, 1, 1–72.
    [3]
    P. A. Bernstein and N. Goodman. 1981. Concurrency Control in Distributed Database Systems. Comput. Surveys 13, 2, 185–221.
    [4]
    J. De Koster, S. Marr, T. Van Cutsem, and T. D’Hondt. 2016. Domains: Sharing state in the communicating event-loop actor model. Computer Languages, Systems & Structures 45, 132–160.
    [5]
    J. De Koster, T. Van Cutsem, and W. De Meuter. 2016. 43 Years of Actors: A Taxonomy of Actor Models and Their Key Properties. In AGERE! 2016. 31–40.
    [6]
    E. de Vries, V. Koutavas, and M. Hennessy. 2010. Communicating Transactions. In CONCUR’10. 569–583.
    [7]
    J. Field and C. A. Varela. 2005. Transactors: A Programming Model for Maintaining Globally Consistent Distributed State in Unreliable Environments. In POPL’05. 195–208.
    [8]
    S. Halloway. 2009. Programming Clojure (1st ed.). Pragmatic Bookshelf.
    [9]
    T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. 2005. Composable Memory Transactions. In PPoPP’05. 48–60.
    [10]
    M. Herlihy and J. E. B. Moss. 1993. Transactional Memory: Architectural Support for Lock-Free Data Structures. ACM SIGARCH Computer Architecture News 21, 289–300.
    [11]
    M. Lesani and A. Lain. 2013. Semantics-preserving Sharing Actors. In AGERE! 2013. 69–80.
    [12]
    M. Lesani and J. Palsberg. 2011. Communicating Memory Transactions. In PPoPP’11. 157–168.
    [13]
    V. Luchangco and V. J. Marathe. 2011. Transaction Communicators: Enabling Cooperation Among Concurrent Transactions. In PPoPP’11. 169–178.
    [14]
    C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. 2008. STAMP: Stanford transactional applications for multi-processing. In IISWC’08. 35–46.
    [15]
    B. Morandi, S. Nanz, and B. Meyer. 2014. Safe and Efficient Data Sharing for Message-Passing Concurrency. In COORDINATION’14. 99–114.
    [16]
    Y. Ni, V. S. Menon, A. Adl-Tabatabai, A. L. Hosking, R. L. Hudson, J. E. B. Moss, B. Saha, and T. Shpeisman. 2007. Open Nesting in Software Transactional Memory. In PPoPP’07. 68–78.
    [17]
    N. Shavit and D. Touitou. 1997. Software transactional memory. Distributed Computing 10, 2, 99–116.
    [18]
    Y. Smaragdakis, A. Kay, R. Behrends, and M. Young. 2007. Transactions with Isolation and Cooperation. In OOPSLA’07. 191–210.
    [19]
    J. Swalens, J. De Koster, and W. De Meuter. 2016. Transactional Tasks: Parallelism in Software Transactions. In ECOOP’16. 23:1–23:28.
    [20]
    S. Tasharofi, P. Dinges, and R. E. Johnson. 2013. Why Do Scala Developers Mix the Actor Model with Other Concurrency Models?. In ECOOP’13. 302–326.
    [21]
    P. Van Roy and S. Haridi. 2004. Concepts, techniques, and models of computer programming. The MIT Press.

    Cited By

    View all
    • (2024)An Asynchronous Scheme for Rollback Recovery in Message-Passing Concurrent Programming LanguagesProceedings of the 39th ACM/SIGAPP Symposium on Applied Computing10.1145/3605098.3636051(1132-1139)Online publication date: 8-Apr-2024
    • (2024)Encore: CodaActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_3(59-91)Online publication date: 29-Jan-2024
    • (2023)From Reversible Computation to Checkpoint-Based Rollback Recovery for Message-Passing Concurrent ProgramsFormal Aspects of Component Software10.1007/978-3-031-52183-6_6(103-123)Online publication date: 26-Oct-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SEPS 2017: Proceedings of the 4th ACM SIGPLAN International Workshop on Software Engineering for Parallel Systems
    October 2017
    47 pages
    ISBN:9781450355179
    DOI:10.1145/3141865
    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].

    Sponsors

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 23 October 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Actors
    2. Concurrency
    3. Parallelism
    4. Software Transactional Memory

    Qualifiers

    • Research-article

    Conference

    SPLASH '17
    Sponsor:

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)11
    • Downloads (Last 6 weeks)2

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)An Asynchronous Scheme for Rollback Recovery in Message-Passing Concurrent Programming LanguagesProceedings of the 39th ACM/SIGAPP Symposium on Applied Computing10.1145/3605098.3636051(1132-1139)Online publication date: 8-Apr-2024
    • (2024)Encore: CodaActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_3(59-91)Online publication date: 29-Jan-2024
    • (2023)From Reversible Computation to Checkpoint-Based Rollback Recovery for Message-Passing Concurrent ProgramsFormal Aspects of Component Software10.1007/978-3-031-52183-6_6(103-123)Online publication date: 26-Oct-2023
    • (2021)ChocolaACM Transactions on Programming Languages and Systems10.1145/342720142:4(1-56)Online publication date: 27-Jan-2021
    • (2019)Actor-based incremental tree data processing for large-scale machine learning applicationsProceedings of the 9th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3358499.3361220(1-10)Online publication date: 22-Oct-2019
    • (2018)Chocola: integrating futures, actors, and transactionsProceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3281366.3281373(33-43)Online publication date: 5-Nov-2018
    • (2018)Shared-variable Synchronization Approaches for Dynamic Data Flow Programs2018 IEEE International Workshop on Signal Processing Systems (SiPS)10.1109/SiPS.2018.8598431(263-268)Online publication date: Oct-2018

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media