Обсуждение: pgsql/src backend/access/heap/heapam.c backend ...

Поиск
Список
Период
Сортировка

pgsql/src backend/access/heap/heapam.c backend ...

От
Tom Lane
Дата:
CVSROOT:    /home/projects/pgsql/cvsroot
Module name:    pgsql
Changes by:    tgl@hub.org    01/05/12 15:58:28

Modified files:
    src/backend/access/heap: heapam.c hio.c
    src/backend/storage/buffer: bufmgr.c localbuf.c
    src/include/storage: bufmgr.h

Log message:
    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.