By "local networking" I mean "single-hop networking" -- you really want your Erlang cluster to be "local" in the sense that all the nodes share a single, non-blocking switch, for as far as you can push that (I know you can get 48-port 10-gig switches reasonably affordably; I imagine density is getting even higher).<div>
<br></div><div>When you lease hardware on a cloud, you don't know how far away each instance will be, and it's pretty clear that you will share network resources with other virtual instances, so it's not a great fit for applications that are highly communications driven or require low latency. The latency is even more problematic, because virtualization will cause random scheduling jitter to the order of 30 milliseconds at best, and > 1000 milliseconds at worst, last I measured. I've never measured worse than 3 ms jitter on "bare metal" Linux-based installations.</div>
<div><br></div><div>Sincerely,</div><div><br></div><div>jw</div><div><br clear="all"><br>--<br>Americans might object: there is no way we would sacrifice our living standards for the benefit of people in the rest of the world. Nevertheless, whether we get there willingly or not, we shall soon have lower consumption rates, because our present rates are unsustainable. <br>
<br>
<br><br><div class="gmail_quote">On Thu, Jun 16, 2011 at 12:55 AM, Joel Reymont <span dir="ltr"><<a href="mailto:joelr1@gmail.com">joelr1@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Jon,<br>
<div class="im"><br>
On Jun 16, 2011, at 9:09 AM, Jon Watte wrote:<br>
<br>
> I would advise against single-core nodes or cloud-based nodes that don't have local networking,<br>
<br>
</div>What do you mean by "don't have local networking"?<br>
<br>
I thought the loopback network interface is a given.<br>
<div class="im"><br>
> I also recommend modeling the traffic across the backplane of the Erlang nodes. How much data do you send per user "event" to other users, and how many other users? Broadcast or point-to-point? Sum it all up, double it, and see if you can still swing that on your current network backplane. If not, buy a bigger network, or start working on ways to compress/reduce the data stream :-)<br>

<br>
</div>I would also keep in mind that messages between Erlang processes and inter-node "kernel pings" go over the same socket. This means that pings start to lag as the message traffic gets heavy. Erlang nodes split when pings are significantly delayed and then in your in deep doodoo.<br>

<br>
This used to be a case a couple of years ago, I don't think anything changed since.<br>
<div><div></div><div class="h5"><br>
--------------------------------------------------------------------------<br>
- for hire: mac osx device driver ninja, kernel extensions and usb drivers<br>
---------------------+------------+---------------------------------------<br>
<a href="http://wagerlabs.com" target="_blank">http://wagerlabs.com</a> | @wagerlabs | <a href="http://www.linkedin.com/in/joelreymont" target="_blank">http://www.linkedin.com/in/joelreymont</a><br>
---------------------+------------+---------------------------------------<br>
<br>
<br>
<br>
</div></div></blockquote></div><br></div>