From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Kris Kennaway <kris(at)obsecurity(dot)org> |
Cc: | Maxime Henrion <mux(at)FreeBSD(dot)org>, pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: [mux@FreeBSD.org: Re: Anyone interested in improving postgresql scaling?] |
Date: | 2007-04-10 22:33:38 |
Message-ID: | 4412.1176244418@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Kris Kennaway <kris(at)obsecurity(dot)org> forwards:
> Yes but there are still a lot of wakeups to be avoided in the current
> System V semaphore code. More specifically, not only do we wakeup all
> the processes waiting on a single semaphore everytime something changes,
> but we also wakeup all processes waiting on *any* of the semaphore in
> the semaphore *set*, whatever the reason we're sleeping.
Ohhhh ... *that's* the problem. Ugh. Although we have a separate
semaphore for each PG backend, they're grouped into semaphore sets
(I think 16 active semaphores per set). So a wakeup intended for one
process would uselessly send up to 15 others through the semop code.
The only thing we could do to fix that from our end would be to use
a smaller sema-set size on *BSD platforms. Is the overhead per sema set
small enough to make this a sane thing to do? Will we be likely to
run into system limits on the number of sets?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2007-04-10 23:50:23 | Re: [HACKERS] Fix mdsync never-ending loop problem |
Previous Message | Kris Kennaway | 2007-04-10 22:28:31 | Re: Anyone interested in improving postgresql scaling? |