Re: [HACKERS] Anyone interested in improving postgresql scaling?



On Tue, Apr 10, 2007 at 05:36:17PM -0400, Tom Lane wrote:
Kris Kennaway <kris@xxxxxxxxxxxxxx> writes:
I have not studied the exact code path, but there are indeed multiple
wakeups happening from the semaphore code (as many as the number of
active postgresql processes). It is easy to instrument
sleepq_broadcast() and log them when they happen.

There are certainly cases where Postgres will wake up a number of
processes in quick succession, but that should happen from a separate
semop() kernel call, on a different semaphore, for each such process.
If there's really multiple processes being released by the same semop()
then there's a bug we need to look into (or maybe it's a kernel bug?).
Anyway I'd be interested to know what the test case is, and which PG
version you were testing.

I used 8.2 (and some older version when I first noticed it a year ago)
and either sysbench or supersmack will show it - presumably anything
that makes simultaneous queries. Just instrument sleepq_broadcast()
to e.g. log a KTR event when it wakes more than 1 process and you'll
see it happening.

Kris

Attachment: pgpssfp0JESqw.pgp
Description: PGP signature



Relevant Pages

  • Re: [HACKERS] Anyone interested in improving postgresql scaling?
    ... wakeups happening from the semaphore code (as many as the number of ... active postgresql processes). ... then there's a bug we need to look into (or maybe it's a kernel bug?). ... Just instrument sleepq_broadcast ...
    (freebsd-current)
  • Re: [HACKERS] Anyone interested in improving postgresql scaling?
    ... wakeups happening from the semaphore code (as many as the number of ... active postgresql processes). ... If there's really multiple processes being released by the same semop() ... then there's a bug we need to look into (or maybe it's a kernel bug?). ...
    (freebsd-current)
  • Re: [HACKERS] Anyone interested in improving postgresql scaling?
    ... wakeups happening from the semaphore code (as many as the number of ... active postgresql processes). ... If there's really multiple processes being released by the same semop() ... then there's a bug we need to look into (or maybe it's a kernel bug?). ...
    (freebsd-performance)