On Sun, Nov 18, 2012 at 10:43 PM, Jeff Davis <pg...@j-davis.com> wrote:

> On Sun, 2012-11-18 at 15:19 +0100, Andres Freund wrote:
> > On Sunday, November 18, 2012 03:07:01 AM Jeff Davis wrote:
> > > Process A (process that clears a VM bit for a data page):
> > >   1. Acquires exclusive lock on data buffer
> > >   2. Acquires exclusive lock on VM buffer
> > >   3. clears VM bit
> > >   4. Releases VM buffer lock
> > >   5. Releases data buffer lock
> >
> > Well, but right this is a rather big difference. If vm pages get
> > unconditionally locked all the time we will have a huge source of new
> > contention as they are shared between so many heap pages.
>
> No, that is only for the process *clearing* the bit, and this already
> happens. I am not planning on introducing any new locks, aside from the
> buffer header lock when acquiring a pin. And I plan to keep those pins
> for long enough that those don't matter, either.
>
> Regards,
>         Jeff Davis
>
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>

Sorry If I am being a bit naive, but shouldnt a simple mutex work in the
case when a process wants to change the VM bit in cache?

Mutex would be cheaper than locks.

Atri

-- 
Regards,

Atri
*l'apprenant*

Reply via email to