<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><font face="Ubuntu">Hello,</font></p>
<p><font face="Ubuntu">I have an Erlang application where latency is crucial and a lot of small messages (tuples with an atom and integer) are exchanged between processes in different nodes.
<br>
</font></p>
<p><font face="Ubuntu">The main procedure is that a main process sends a small message to 4 worker processes in other Erlang nodes, the worker processes do some negligible processing, and then they reply back to the main node with a small message.
<br>
</font></p>
<p><font face="Ubuntu">Each separate Erlang node is on a different docker container (generated from the erlang:21 docker image), and all the containers are connected using a standard docker bridge network.</font></p>
<p><font face="Ubuntu">I have noticed that latency (the time from when the first message is sent, and its replies arrive) linearly increases with time. It starts at 1 second and after 30 seconds of execution latency has become 10 seconds.</font></p>
<p><font face="Ubuntu">I have tried running all processes on the same erlang node, and then latency is (as expected) a couple milliseconds, so my assumption is that the problem could be caused by one (or more) of the following:</font></p>
<p><font face="Ubuntu">- Some misconfiguration of the Erlang nodes</font></p>
<p><font face="Ubuntu">- Some misconfiguration of the docker network/containers<br>
</font></p>
<p><font face="Ubuntu">- Some penalty imposed by the operating system/docker because a lot of small messages are exchanged</font></p>
<p><font face="Ubuntu">Has anyone encountered this issue, or does anyone know how to configure Erlang nodes (and the operating system) to reduce message latency?
<br>
</font></p>
<p><font face="Ubuntu">Thanks in advance.<br>
</font></p>
<p><font face="Ubuntu">Best,</font></p>
<p><font face="Ubuntu">Konstantinos<br>
</font></p>
</body>
</html>