[HACKERS] Anyone interested in improving postgresql scaling?

Kris Kennaway kris at obsecurity.org
Tue Apr 10 19:45:13 UTC 2007


On Tue, Apr 10, 2007 at 02:46:56PM -0400, Tom Lane wrote:
> Kris Kennaway <kris at obsecurity.org> writes:
> >>> Make SYSV semaphores less dumb about process wakeups.  Currently
> >>> whenever the semaphore state changes, all processes sleeping on the
> >>> semaphore are woken, even if we only have released enough resources
> >>> for one waiting process to claim.
> 
> >> Correct.  The behavior Kris describes is surely bad, but it's not
> >> relevant to Postgres' usage of SysV semaphores.
> 
> > Sorry, but the behaviour is real.
> 
> Oh, I'm sure the BSD kernel acts as you describe.  But Mark's point is
> that Postgres never has more than one process waiting on any particular
> SysV semaphore, and so the problem doesn't really affect us.
> 
> Or do you mean that the kernel wakes all processes sleeping on *any*
> SysV semaphore?  That would be nasty :-(

To be clear, some behaviour that postgresql does with sysv semaphores
causes wakeups of many processes at once.  i.e. if you have 20
clients, you will get up to 20 wakeups.  I haven't studied the precise
cause of this, but it is empirically true.  This is the scaling
problem I described, and it's what mux's patch addresses.

Kris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-performance/attachments/20070410/1c4c6369/attachment.pgp


More information about the freebsd-performance mailing list