From: | Kris Kennaway <kris(at)obsecurity(dot)org> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Kris Kennaway <kris(at)obsecurity(dot)org>, performance(at)FreeBSD(dot)org, current(at)FreeBSD(dot)org, Mark Kirkwood <markir(at)paradise(dot)net(dot)nz>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Anyone interested in improving postgresql scaling? |
Date: | 2007-04-10 19:45:08 |
Message-ID: | 20070410194508.GA73072@xor.obsecurity.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Apr 10, 2007 at 02:46:56PM -0400, Tom Lane wrote:
> Kris Kennaway <kris(at)obsecurity(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2007-04-10 19:49:08 | Re: [DOCS] uuid type not documented |
Previous Message | Neil Conway | 2007-04-10 19:30:52 | Re: [DOCS] uuid type not documented |