pgsql: Replace the BufMgrLock with separate locks on the lookup - Mailing list pgsql-committers

From tgl@svr1.postgresql.org (Tom Lane)
Subject pgsql: Replace the BufMgrLock with separate locks on the lookup
Date
Msg-id 20050304202107.4183454E34@svr1.postgresql.org
Whole thread Raw
List pgsql-committers
Log Message:
-----------
Replace the BufMgrLock with separate locks on the lookup hashtable and
the freelist, plus per-buffer spinlocks that protect access to individual
shared buffer headers.  This requires abandoning a global freelist (since
the freelist is a global contention point), which shoots down ARC and 2Q
as well as plain LRU management.  Adopt a clock sweep algorithm instead.
Preliminary results show substantial improvement in multi-backend situations.

Modified Files:
--------------
    pgsql/doc/src/sgml:
        runtime.sgml (r1.306 -> r1.307)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/runtime.sgml.diff?r1=1.306&r2=1.307)
    pgsql/src/backend/catalog:
        index.c (r1.244 -> r1.245)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/index.c.diff?r1=1.244&r2=1.245)
    pgsql/src/backend/commands:
        dbcommands.c (r1.151 -> r1.152)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/dbcommands.c.diff?r1=1.151&r2=1.152)
        vacuum.c (r1.302 -> r1.303)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuum.c.diff?r1=1.302&r2=1.303)
    pgsql/src/backend/postmaster:
        bgwriter.c (r1.14 -> r1.15)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/bgwriter.c.diff?r1=1.14&r2=1.15)
    pgsql/src/backend/storage/buffer:
        README (r1.7 -> r1.8)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/README.diff?r1=1.7&r2=1.8)
        buf_init.c (r1.71 -> r1.72)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/buf_init.c.diff?r1=1.71&r2=1.72)
        buf_table.c (r1.39 -> r1.40)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/buf_table.c.diff?r1=1.39&r2=1.40)
        bufmgr.c (r1.185 -> r1.186)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/bufmgr.c.diff?r1=1.185&r2=1.186)
        freelist.c (r1.50 -> r1.51)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/freelist.c.diff?r1=1.50&r2=1.51)
        localbuf.c (r1.62 -> r1.63)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/localbuf.c.diff?r1=1.62&r2=1.63)
    pgsql/src/backend/utils/misc:
        guc.c (r1.253 -> r1.254)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/guc.c.diff?r1=1.253&r2=1.254)
        postgresql.conf.sample (r1.134 -> r1.135)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/postgresql.conf.sample.diff?r1=1.134&r2=1.135)
    pgsql/src/backend/utils/resowner:
        resowner.c (r1.9 -> r1.10)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/resowner/resowner.c.diff?r1=1.9&r2=1.10)
    pgsql/src/include/postmaster:
        bgwriter.h (r1.4 -> r1.5)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/postmaster/bgwriter.h.diff?r1=1.4&r2=1.5)
    pgsql/src/include/storage:
        buf_internals.h (r1.76 -> r1.77)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/buf_internals.h.diff?r1=1.76&r2=1.77)
        bufmgr.h (r1.89 -> r1.90)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/bufmgr.h.diff?r1=1.89&r2=1.90)
        lwlock.h (r1.16 -> r1.17)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/lwlock.h.diff?r1=1.16&r2=1.17)

pgsql-committers by date:

Previous
From: tgl@svr1.postgresql.org (Tom Lane)
Date:
Subject: pgsql: Replace ARC cache management algorithm with the similar but
Next
From: andrewd@pgfoundry.org (User Andrewd)
Date:
Subject: pgbuildfarm - client-code: force a build if we don't have a snapshot