<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 28 Jul 2011, at 12:41, Joel Reymont wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>On Jul 28, 2011, at 11:33 AM, Ulf Wiger wrote:<br><br><blockquote type="cite">The problems with Distributed Erlang are related to a heavy-handed backpressure solution, where processes trying to send to the dist_port are simply suspended if the output queue exceeds a given threshold. When the queue falls under the threshold, all suspended processes are resumed. Since the algorithm doesn't differentiate between processes, this fate can befall the net ticker as well.<br></blockquote><br>I thought my net splits were due to heavy process messaging traffic and the net ticker messages falling behind. <br><br>That didn't quite explain it but what you said does.<br></div></blockquote><br></div><div>Yeah, we (or mainly, Michal Ptaszek) had reason to dig into this fairly recently, and found that tuning can really make a big difference. Still, the whole area should be revisited for smarter overload handling.</div><div><br></div><div>A particularly interesting fault situation was when this dynamic ended up suspending the rpc server. It could still receive and process requests (spawning dynamic workers for the processing), but was suspended practically every time it tried to send a reply. Eventually, its message queue used up all memory and killed the node. :)</div><div><br></div><div>Actually, these changes in R14B01 are relevant:</div><div><br></div><div><meta charset="utf-8"><span class="Apple-style-span" style="font-family: Times; "><pre style="word-wrap: break-word; white-space: pre-wrap; ">    OTP-8901  The runtime system is now less eager to suspend processes
              sending messages over the distribution. The default value of
              the distribution buffer busy limit has also been increased
              from 128 KB to 1 MB. This in order to improve throughput.

    OTP-8912  The distribution buffer busy limit can now be configured at
              system startup. For more information see the documentation of
              the erl +zdbbl command line flag. (Thanks to Scott Lystig
              Fritchie)</pre></span><div>and possibly also this:</div><div><br></div><div><meta charset="utf-8"><span class="Apple-style-span" style="font-family: Times; "><pre style="word-wrap: break-word; white-space: pre-wrap; ">    OTP-8916  The inet driver internal buffer stack implementation has been
              rewritten in order to reduce lock contention.</pre></span><div>(<a href="http://www.erlang.org/download/otp_src_R14B01.readme">http://www.erlang.org/download/otp_src_R14B01.readme</a>)</div></div></div><div><br></div><div>BR,</div><div>Ulf W</div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div>Ulf Wiger, CTO, Erlang Solutions, Ltd.</div><div><a href="http://erlang-solutions.com">http://erlang-solutions.com</a></div><div><br></div></span><br class="Apple-interchange-newline">
</div>
<br></body></html>