Loading…

Domains: Sharing state in the communicating event-loop actor model

The actor model is a message-passing concurrency model that avoids deadlocks and low-level data races by construction. This facilitates concurrent programming, especially in the context of complex interactive applications where modularity, security and fault-tolerance are required. The tradeoff is t...

Full description

Saved in:
Bibliographic Details
Published in:Computer languages, systems & structures systems & structures, 2016-04, Vol.45, p.132-160
Main Authors: De Koster, Joeri, Marr, Stefan, Van Cutsem, Tom, D׳Hondt, Theo
Format: Article
Language:English
Subjects:
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:The actor model is a message-passing concurrency model that avoids deadlocks and low-level data races by construction. This facilitates concurrent programming, especially in the context of complex interactive applications where modularity, security and fault-tolerance are required. The tradeoff is that the actor model sacrifices expressiveness and safety guarantees with respect to parallel access to shared state. In this paper we present domains as a set of novel language abstractions for safely encapsulating and sharing state within the actor model. We introduce four types of domains, namely immutable, isolated, observable and shared domains that each is tailored to a certain access pattern on that shared state. The domains are characterized with an operational semantics. For each we discuss how the actor model׳s safety guarantees are upheld even in the presence of conceptually shared state. Furthermore, the proposed language abstractions are evaluated with a case study in Scala comparing them to other synchronization mechanisms to demonstrate their benefits in deadlock freedom, parallel reads, and enforced isolation. •The domain model is an extension to the communicating event-loop actor model.•The domain model retains the safety and liveness properties of the actor model.•We provide an operational semantics and validation of the domain model.
ISSN:1477-8424
1873-6866
DOI:10.1016/j.cl.2016.01.003