Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Apr 2007 15:45:08 -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:  <20070410194508.GA73072@xor.obsecurity.org>
In-Reply-To: <28537.1176230816@sss.pgh.pa.us>
References:  <20070226002234.GA80974@xor.obsecurity.org> <461B69C0.4060707@paradise.net.nz> <25573.1176215022@sss.pgh.pa.us> <20070410184332.GC44123@xor.obsecurity.org> <28537.1176230816@sss.pgh.pa.us>

next in thread | previous in thread | raw e-mail | index | archive | help

--FL5UXtIhxfXey3p5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 10, 2007 at 02:46:56PM -0400, Tom Lane wrote:
> Kris Kennaway <kris@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.
>=20
> >> Correct.  The behavior Kris describes is surely bad, but it's not
> >> relevant to Postgres' usage of SysV semaphores.
>=20
> > Sorry, but the behaviour is real.
>=20
> 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.
>=20
> 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

--FL5UXtIhxfXey3p5
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iD8DBQFGG+lEWry0BWjoQKURAoFLAJ43YXRWteFzSq6h203IAD91EMuKCgCfTOFV
tacaoES8XR0lq1tH7qtwUN4=
=bTF6
-----END PGP SIGNATURE-----

--FL5UXtIhxfXey3p5--



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