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 ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend