Skip site navigation (1)Skip section navigation (2)
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

--XOIedfhf+7KOe/yw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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:
> >>=20
> >> 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().
>=20
> > I'm forwarding this to the pgsql-hackers list so that folks more=20
> > qualified than I can comment, but as I understand the way postgres=20
> > implements locking each process has it *own* semaphore it waits on  -=
=20
> > and who is waiting for what is controlled by an in (shared) memory hash=
=20
> > of lock structs (access to these is controlled via platform Dependant=
=20
> > spinlock code). So a given semaphore state change should only involve=
=20
> > one process wakeup.
>=20
> 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
--XOIedfhf+7KOe/yw
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQFGG9rUWry0BWjoQKURAmsHAKDnlEDzWjsnN6DSpJZwD9rJ4uhxkwCfT5Wk
KPvE0REv7jdpbMea6D0KuYU=
=l8NM
-----END PGP SIGNATURE-----

--XOIedfhf+7KOe/yw--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070410184332.GC44123>