Excerpts from Jeff Janes's message of mar oct 26 12:22:38 -0300 2010:
> I don't think that holding WALWriteLock accomplishes much. It
> prevents part of the buffer from being written out to OS/disk, and
> thus becoming eligible for being overwritten in the buffer, but the
> WALInsertLock prevents it from actually being overwritten. And what
> if the part of the buffer you want to read was already eligible for
> overwriting but not yet actually overwritten? WALWriteLock won't
> allow you to safely access it, but WALInsertLock will (assuming you
> have a safe way to identify the record in the first place). For
> either case, holding it in shared mode would be sufficient.
And horrible for performance, I imagine. Those locks are highly trafficked.
--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support