[erlang-questions] New OTP app available at GitHub: riak_err

Scott Lystig Fritchie fritchie@REDACTED
Fri Nov 12 02:27:33 CET 2010


Max Lapshin <max.lapshin@REDACTED> wrote:

ml> Don't forget to add 5000000 of messages into message queue when
ml> making these tests =)

Yes, there is that little problem ... but that isn't a problem that
riak_err is trying to solve(*).  As has been pointed out by Ulf Wiger
and many others, if there isn't a way to apply backpressure on the
client (i.e. error/whatever event generators) to get them to slow down,
then the server (i.e. a gen_event server like error_logger) doesn't have
many options for defense.

However, on an N-CPU-core system, it's even less likely that one of
those options will work: throw away work.  Even if the event handler
could keep state about how many events/sec it could handle and then
throw events that exceed that limit, there's only 1 CPU core (maximum)
that can run the gen_event server.  There are N-1 cores still available
to run obnoxious clients to overflow the server's mailbox anyway.

I'm not above putting a less-vulnerable-to-mailbox-overruns
gen_event.beam file into another directory, un-sticky the kernel's code
directory, and load the patched gen_event.beam into a running system
... but then again, I'm also known(**) for dirtier-than-my-colleagues'-
tastes-permit hacks.

-Scott

(*) At least, not yet.

(**) If those individuals don't have better solutions, they are welcome
to remain silent.  :-)


More information about the erlang-questions mailing list