[erlang-questions] Kill process if message mailbox reaches a certain size (was discarding signals)
Thu Jun 16 05:11:03 CEST 2011
Thanks for all the thoughts and suggestions. If I got it right, there were two main branches:
1. Avoid the congestion situation
2. Detect and kill/restart the problematic process(es)
The problem with these approaches that the Erlang applications are not just playing with themselves but receive input from other nodes. Those nodes can be very numerous and uncontrollable.
As an example, just let's take the mobile network where the traffic is generated by millions of subscribers using mobile devices from many vendors. In this case we (1) cannot control the volume of the traffic and (2) cannot make sure that all the devices follow the protocol.
So there can be situations when we cannot avoid congestion simply because the source of the traffic is beyond our reach.
Killing and restarting is not the right way either:
- A restart causes total outage for a while that is very unwelcome by the users (e.g. network operators) of our boxes
- Erlang is advertised to be robust but killing and restarting is not a sign of robustness.
So the user can easily call us liar: "You say your node is robust but it is restarting frequently!"
So I still believe that very quick discard of the signals is a key for real robustness. Obviously, it shall be used *only* in the right circumstances, but in those cases that would be the only way to keep the node alive and minimize the traffic loss.
Then the question is still open: Discarding 1-by-1 is the best what we can do or there is something more efficient to get rid of the excess traffic?
From: erlang-questions-bounces@REDACTED [mailto:erlang-questions-bounces@REDACTED] On Behalf Of Max Lapshin
Sent: Thursday, June 16, 2011 0:25
To: Mihai Balea
Cc: erlang-questions Questions
Subject: Re: [erlang-questions] Kill process if message mailbox reaches a certain size (was discarding signals)
On Wed, Jun 15, 2011 at 8:32 PM, Mihai Balea <mihai@REDACTED> wrote:
> Are you referring to this thread?
erlang-questions mailing list
More information about the erlang-questions