On Fri, 25 Jan 2008, Simon Riggs wrote:
>> 1. Try to avoid having all the backends hit the queue at once. Instead
>> of SIGUSR1'ing everybody at the same time, maybe hit only the process
>> with the oldest message pointer, and have him hit the next oldest after
>> he's done reading the queue.
My feeling was that an "obvious" way to deal with this is to implement
some sort of "random early detect". That is, randomly SIGUSR1 processes as
entries are added to the queue. The signals should become more frequent as
the queue length increases, until it reaches the current cut-off of
signalling everyone when the queue really is full. The hope would be that
that would never happen.
Matthew