Modify RelationGetBufferForTuple() so that we only do lseek and lock

Tom Lane <tgl@sss.pgh.pa.us>

Commit: eedb7d18fafdc1dfff61de0f0cfb2c19baeae361
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2001-05-12T19:58:28Z
Releases: 7.2.1
Modify RelationGetBufferForTuple() so that we only do lseek and lock
when we need to move to a new page; as long as we can insert the new
tuple on the same page as before, we only need LockBuffer and not the
expensive stuff.  Also, twiddle bufmgr interfaces to avoid redundant
lseeks in RelationGetBufferForTuple and BufferAlloc.  Successive inserts
now require one lseek per page added, rather than one per tuple with
several additional ones at each page boundary as happened before.
Lock contention when multiple backends are inserting in same table
is also greatly reduced.

Files