In this talk we present and demonstrate Scalable Distributed (SD) Erlang -- an extension of Distributed Erlang functional programming language for reliable scalability. We start by discussing distributed Erlang limitations and introducing scalable groups (s_groups). The s_groups enable scaling of Erlang nodes by eliminating transitive connections, i.e. a node may belong to multiple s_groups, and each s_group node has transitive connections with the nodes from the same s_groups and non-transitive connections with other nodes. Then we refactor a distributed Erlang program into an SD Erlang program using Orbit benchmark -- a generalization of a transitive closure computation. That is we group nodes in s_groups, add gateway processes and nodes that enable message passing between worker nodes from different s_groups without a direct connection between the nodes, and introduce an additional hashing to identify an s_group where a corresponding part of the distributed hash table is stored. We conclude the talk by brief introduction of the ongoing work on the semi-explicit process placement in scaled networks.
Talk objectives: To present the RELEASE research project that aims to improve the scalability of Erlang, introduce s_groups to the Erlang community, and get feedback
Target audience: those who plan to scale distributed Erlang applications beyond 60 Erlang nodes
Slides
Natalia Chechina received a PhD degree from Heriot-Watt University, UK in 2011. She is now a Research Associate at the University of Glasgow and leads Scalable Distributed Erlang work package (WP3) in the RELEASE project. The RELEASE project (A High-Level Paradigm for Reliable Large-Scale Server Software) sponsored by an EU FP7 STREP (287510) aims to improve the scalability of Erlang programming language - aiming to scale it out to systems with a million cores (maybe 10 000 Erlang nodes). The Glasgow team of the RELEASE project works at the language level, designing Scalable Distributed Erlang to improve the scalability of Distributed Erlang. Natalia’s main research interests are distributed and parallel computing, Erlang, mathematical and theoretical analysis, stochastic modelling, and overlay networks.