<div dir="ltr">On 27 June 2018 at 15:39,  <span dir="ltr"><<a href="mailto:zxq9@zxq9.com" target="_blank">zxq9@zxq9.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="gmail-">On 2018年6月27日水曜日 16時19分14秒 JST Aaron Seigo wrote:<br>
> Hello! :)<br>
> <br>
> I have a distributed (in the Erlang sense) application which often <br>
> produces moderately-sized maps (10k+ entries with lots of tuples in the <br>
> mix) which in the past have given inter-node message passing serious <br>
> problems: the vm would lock for a long while, use several GB of RAM, and <br>
> usually eventually give up. When it didn't outright crash, it would <br>
> produce message sizes too big to send between nodes, and/or the <br>
> heartbeat messages between nodes would time out resulting in breakage. <br>
> Running the same terms through `term_to_binary` produces similar <br>
> results.<br>
<br>
</span>If you're using disterl keep in mind that inter-node heartbeats operate<br>
on the same channel as intern-node messages.<br>
<br>
If you send huge messages you are killing your heartbeats. That doesn't<br>
play out very well.<br>
<br>
The *correct* solution would be to make disterl operate over SCTP, but in<br>
reality SCTP isn't supported well enough cross-platform to make for a<br>
universal option (thanks, Microsoft).<br>
<br>
Instead, consider opening a separate TCP connection between nodes for<br>
tranfer of large data. That way heartbeats and small inter-node messages<br>
don't interfere with your huge bulk message transfers.<br>
<br>
(Yes, this is totally the kind of thing that there should be a library<br>
for, but it isn't something there is a lot of time for unpaid work on.<br>
That sucks, but there it is.)<br>
<br></blockquote><div><br></div><div>There are a few libraries which offer this functionality. Here are two I know of.</div><div><br></div><div><a href="https://github.com/priestjim/gen_rpc">https://github.com/priestjim/gen_rpc</a><br></div><div><br></div><div><a href="https://github.com/Bluehouse-Technology/erpc">https://github.com/Bluehouse-Technology/erpc</a><br></div><div><br></div><div>Chandru</div><div><br></div><div><br></div></div></div></div>