Date: Tue, 10 Apr 2007 14:43:33 -0400 From: Kris Kennaway <kris@obsecurity.org> To: Tom Lane <tgl@sss.pgh.pa.us> Cc: pgsql-hackers <pgsql-hackers@postgresql.org>, performance@FreeBSD.org, current@FreeBSD.org, Mark Kirkwood <markir@paradise.net.nz>, Kris Kennaway <kris@obsecurity.org> Subject: Re: [HACKERS] Anyone interested in improving postgresql scaling? Message-ID: <20070410184332.GC44123@xor.obsecurity.org> In-Reply-To: <25573.1176215022@sss.pgh.pa.us> References: <20070226002234.GA80974@xor.obsecurity.org> <461B69C0.4060707@paradise.net.nz> <25573.1176215022@sss.pgh.pa.us>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] On Tue, Apr 10, 2007 at 10:23:42AM -0400, Tom Lane wrote: > Mark Kirkwood <markir@paradise.net.nz> writes: > > Kris Kennaway wrote: > >> If so, then your task is the following: > >> > >> 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. i.e. there is a thundering herd > >> wakeup situation which destroys performance at high loads. Fixing > >> this will involve replacing the wakeup() calls with appropriate > >> amounts of wakeup_one(). > > > I'm forwarding this to the pgsql-hackers list so that folks more > > qualified than I can comment, but as I understand the way postgres > > implements locking each process has it *own* semaphore it waits on - > > and who is waiting for what is controlled by an in (shared) memory hash > > of lock structs (access to these is controlled via platform Dependant > > spinlock code). So a given semaphore state change should only involve > > one process wakeup. > > 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. Kris [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQFGG9rUWry0BWjoQKURAmsHAKDnlEDzWjsnN6DSpJZwD9rJ4uhxkwCfT5Wk KPvE0REv7jdpbMea6D0KuYU= =l8NM -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070410184332.GC44123>
