[erlang-questions] On selective receive (Re: eep: multiple patterns)

Chandru <>
Mon Jun 2 15:31:05 CEST 2008


2008/6/2 Mats Cronqvist <>:

> Ulf Wiger wrote:
> > I would really like to discourage people from avoiding
> > selective receive because it's "expensive". It can be
> > expensive on very large message queues, but this is
> > a pretty rare error condition, and fairly easily observable.
> >
>
>   i think the "issue" of how the emu deals with huge in-queues is pretty
> uninteresting.
>  in my personal experience, every single time this has come up the real
> problem has turned out to be lack of proper flow control (typically
> using {active,true} sockets). having 100k messages in an in-queue is not
> a realistic use case.
>  the fact that this is not, afaik, particularly well documented is of
> course a problem.
>

This is true - but if one has no prior experience of this situation, it is
hard to understand why a system is behaving sluggishly. What will be nice is
having an option, as Ulf suggested earlier, to have bounded message queues
(kill the process if the message queue length exceeds a certain value). That
way, flow control problems will be more readily visible to users. In real
life situations, when a process gets into this state, the only way to fix it
is to kill that process as it will probably never catch up. This has been
discussed before:
http://www.erlang.org/pipermail/erlang-questions/2006-January/018364.html

It also fits in well with the "Let it crash" philosophy.

cheers
Chandru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080602/83b4fa61/attachment.html>


More information about the erlang-questions mailing list