The C1K Problem – Connecting Thousands of Erlang Devices – Peer Stritzinger – Erlang User Conference 2015
Slides and more info: http://www.erlang-factory.com/euc2015/peer-stritzinger
Erlang users learn that Erlang distribution, while its very convenient and useful only works for a limited amount of nodes. Using Erlang on small networked embedded devices in distributed industrial control systems the need for up to 1000 nodes in one network arises soon (think large factory floor). At the same time we have a limited amount of resources in these embedded nodes and the network itself.
This talk starts from a existing system of 15 embedded nodes which controls a real world factory transport system. While this works quite well the problems that prevent further scaling already begin to show. We’ll have a look on these problems an evaluate ways to fix them to get towards the goal of 1000 networked nodes. After a look at the causes of the problems (epmd, global, fully meshed network) several possible existing and upcoming technologies are looked at:
* SD Erlang
* epmd in pure Erlang integrated in the node
* gproc with locks_leader
* Hidden nodes
An outlook is given how extending the existing implementation of distribution in the runtime will further help making Erlang distribution more flexible and powerful.
– Give an overview of techniques for scaling Erlang distribution, for certain communication patterns which occur in industrial embedded application.
– Anyone (beginner or expert) interested looking beyond the default applications of Erlang distribution.
Peer Stritzinger ported Erlang to Hard-Realtime Operationg system RTEMS (www.grisp.org). He developed the Hydraprog automotive control unit flashing device which has been used successfully all over the world for over a decade. Since 2007 the firmware of the device is written mainly in Erlang – including protocol stacks for all existing automotive protocols. Currently developing industrial transport system controller with Erlang in a small embedded system. Initially mastered in Physics at the Technical University Munich, Peer has broad experience ranging from low level device drivers to functional languages in industrial and automotive applications. He has been working self employed as a developer since 1987. He did consulting work in applied cryptography and protocol design and implementation. Peer is currently living and working in the nice countryside west of Munich, Bavaria.