Title :
Expressing and Composing Actors for Deterministic and Scalable Programming in Cloud
Author :
Kang Lianghuan ; Zhan Hanglong ; Cao Donggang
Author_Institution :
Key Lab. of High Confidence Software Technol., Peking Univ., Beijing, China
fDate :
March 30 2015-April 3 2015
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.
Keywords :
cloud computing; distributed memory systems; distributed programming; functional programming; message passing; software fault tolerance; synchronisation; Erlang; UniAS; actor model; actor-based industrial language; asynchronous message-passing model; automatic distribution feature; composing actor model; deterministic actor programming; distask; distributed memory applications; dynamic cloud environment; expressing actor model; fault handing feature; fine-grained concurrency applications; functional programming; high-level programming model; low-level synchronization primitives; scalability feature; scalable programming; synchronization strategies; Computational modeling; Concurrent computing; Parallel processing; Programming; Scalability; Servers; Synchronization; Deterministic Concurrency; Distributed Programming; Actor Model; Erlang;
Conference_Titel :
Service-Oriented System Engineering (SOSE), 2015 IEEE Symposium on
Conference_Location :
San Francisco Bay, CA
DOI :
10.1109/SOSE.2015.58