In this talk I'll present Scalable Distributed (SD) Erlang -- an extension of distributed Erlang functional programming language for reliable scalability. The work is a part of the RELEASE project that aims to improve the scalability of Erlang programming language. I'll start by providing an overview of the RELEASE project and discussing distributed Erlang limitations. Then I'll introduce SD Erlang, its design, motivation, and the main two components, i.e. scalable groups and semi-explicit placement. The scalable groups (s_groups) enable scaling the network of Erlang nodes by eliminating transitive connections, i.e. a node may belong to multiple s_groups where each s_group node has transitive connections with the nodes from the same s_groups and non-transitive connections with other nodes. The semi-explicit placement enables to spawn processes on nodes either in a particular s_group, or with particular attributes (e.g. available hardware or software), or with certain parameters (e.g. least load). I’ll also cover the results of the preliminary validation, and SD Erlang operational semantics and its verification. I'll conclude the talk by providing a brief overview of the ongoing work and our future plans. |