[erlang-questions] Kill process if message mailbox reaches a certain size (was discarding signals)

Jon Watte <>
Mon Jun 20 06:35:58 CEST 2011


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).

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.

Sincerely,

jw


--
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.



On Thu, Jun 16, 2011 at 12:55 AM, Joel Reymont <> wrote:

> Jon,
>
> On Jun 16, 2011, at 9:09 AM, Jon Watte wrote:
>
> > I would advise against single-core nodes or cloud-based nodes that don't
> have local networking,
>
> What do you mean by "don't have local networking"?
>
> I thought the loopback network interface is a given.
>
> > 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 :-)
>
> 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.
>
> This used to be a case a couple of years ago, I don't think anything
> changed since.
>
> --------------------------------------------------------------------------
> - for hire: mac osx device driver ninja, kernel extensions and usb drivers
> ---------------------+------------+---------------------------------------
> http://wagerlabs.com | @wagerlabs | http://www.linkedin.com/in/joelreymont
> ---------------------+------------+---------------------------------------
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110619/7824777e/attachment.html>


More information about the erlang-questions mailing list