Samenvatting
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.
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.
Originele taal-2 | English |
---|---|
Titel | SEPS 2017 - Proceedings of the 4th ACM SIGPLAN International Workshop on Software Engineering for Parallel Systems, co-located with SPLASH 2017 |
Redacteuren | Ali Jannesari, Tim Mattson, Pablo de Oliveira Castro, Yukinori Sato |
Plaats van productie | New York, NY, USA |
Uitgeverij | ACM |
Pagina's | 31-41 |
Aantal pagina's | 11 |
ISBN van elektronische versie | 9781450355179 |
ISBN van geprinte versie | 978-1-4503-5517-9 |
DOI's | |
Status | Published - 23 okt 2017 |
Evenement | Software Engineering for Parallel Systems - Vancouver, BC, Canada Duur: 23 okt 2017 → 23 okt 2017 https://2017.splashcon.org/track/seps-2017 |
Workshop
Workshop | Software Engineering for Parallel Systems |
---|---|
Verkorte titel | SEPS |
Land/Regio | Canada |
Stad | Vancouver, BC |
Periode | 23/10/17 → 23/10/17 |
Internet adres |