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)
---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings
