[erlang-questions] EUC 2006 / proposal to enhance message receive

Dominic Williams xpdoka@REDACTED
Mon Nov 13 17:45:01 CET 2006

Jay Nelson wrote:

> As a result of the briefing I added a suggested language
> change to introduce a control message queue which is
> separate from the existing data message queue.

It seems to me that your suggestion introduces a new syntax
without providing new semantics. Using send and selective
receive it is already possible, semantically, to have
messages of different priorities.

Christian S wrote:

> Is the goal mainly increased efficiency [...]?

It's a bit more than just increased efficiency. As Pascal
Brisset pointed out last year (*), the current
implementation of selective receive can cause the system to
become suddenly overloaded and throughput to dwindle to
almost nothing.

Instead of adding new syntax can't the implementation be
improved? That way, the language stays simpler and all
existing code benefits from the improvement.

Regarding implementation, Jay wrote:

> It is possible to arrange this in your scenario, but you
> wouldn't want to adopt an approach that makes the
> bookkeeping required to manage the semantics to be too
> involved.  Right now message receive is simple and fast to
> perform, therefore it is highly reliable.
> It only becomes slow when you combine selective receive
> with a very long message queue.  This can happen when
> there are multiple requesters filling the queue, or the
> server handling requests has a lot to do for a single
> request.

You're using the phrase "highly reliable" in a way that I am
not familiar with. It seems to me that an implementation
that is slightly less efficient in normal conditions but is
well-behaved (i.e. slows down linearly) under stress would
be preferable.

(*) http://www.erlang.org/ml-archive/erlang-questions/200511/msg00154.html


Dominic Williams


More information about the erlang-questions mailing list