Expressing and Composing Actors for Deterministic and Scalable Programming in Cloud

2015 
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.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    25
    References
    2
    Citations
    NaN
    KQI
    []