Expressing and Composing Actors for Deterministic and Scalable Programming in Cloud

Kang Lianghuan,Zhan Hanglong,Cao Donggang
DOI: https://doi.org/10.1109/sose.2015.58
2015-01-01
Abstract:Actor model is an asynchronous message-passing model for fine-grained concurrency and distributed memory applications. However, it is inherently non-deterministic due to low-level synchronization primitives such as send and receive, leading to high-complexity and error-prone code when programming deterministic applications expressed by actors. In order to to support deterministic actor programming, this paper proposes a high-level programming model named distask. The core solution is to express complex synchronization in a simple and deterministic pattern by introducing features of functional programming. In detail, we design a set of composing operators on distasks in several pre-defined patterns called synchronization strategies. A distask can be composed of other distasks in a deterministic manner instead of non-deterministic communication within original actors. In addition, automatic distribution, scalability and fault handing features are supported to adapt to dynamic Cloud environment. We have implemented distask in a system called UniAS. The implementation language is Erlang, an actor-based industrial language. It is readily applied to several vital distributed memory applications with little compromise of performance.
What problem does this paper attempt to address?