On Mon, Jan 23, 2012 at 11:01 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> Robert Haas <robertmh...@gmail.com> writes:
>> On Mon, Jan 23, 2012 at 12:12 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:
>>>> The expensive part of what
>>>> we do while holding BufFreelistLock is, I think, iterating through
>>>> buffers taking and releasing a spinlock on each one (!).
>
>>> Yeah ... spinlocks that, by definition, will be uncontested.
>
>> What makes you think that they are uncontested?
>
> Ah, never mind.  I was thinking that we'd only be touching buffers that
> were *on* the freelist, but of course this is incorrect.  The real
> problem there is that BufFreelistLock is also used to protect the
> clock sweep pointer.  I think basically we gotta find a way to allow
> multiple backends to run clock sweeps concurrently.  Or else fix
> things so that the freelist never (well, hardly ever) runs dry.

I'd come to the same conclusion myself.  :-)

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to