Logging to one process from thousands: How does it work?

Joel Reymont <>
Tue Jan 3 14:21:32 CET 2006


To add to my list of questions...

Are there any limits on the size of the receive queue in Erlang? Is  
there any blocking to prevent other processes from postingg to the  
message queue once it reaches a certain size?

Is the receive queue a bottomless pit without any blocking?

On Jan 3, 2006, at 12:36 PM, Joel Reymont wrote:

> Folks,
>
> I have just rewrote some code from Haskell to Erlang and there's  
> one thing that baffles me.
>
> I tried to approach Haskell the way I would code in Erlang and set  
> up a logger thread with an unbounded message queue. I then launched  
> a few hundred/thousand threads that traced to the logger  
> periodically. This is no different than using disk_log in Erlang, I  
> think.
>
> The Haskell logger thread got quickly overwhelmed with messages I  
> think. The queue build-up was huge. How does it work with Erlang?  
> Is the scheduler specially tuned somehow to give different  
> priorities to different threads? The Haskell scheduler, I believe,  
> is just round-robin.

--
http://wagerlabs.com/








More information about the erlang-questions mailing list