Thread: pgsql: Give the ResourceOwner mechanism full responsibility for
pgsql: Give the ResourceOwner mechanism full responsibility for
From
tgl@svr1.postgresql.org (Tom Lane)
Date:
Log Message: ----------- Give the ResourceOwner mechanism full responsibility for releasing buffer pins at end of transaction, and reduce AtEOXact_Buffers to an Assert cross-check that this was done correctly. When not USE_ASSERT_CHECKING, AtEOXact_Buffers is a complete no-op. This gets rid of an O(NBuffers) bottleneck during transaction commit/abort, which recent testing has shown becomes significant above a few tens of thousands of shared buffers. Modified Files: -------------- pgsql/src/backend/access/transam: xact.c (r1.191 -> r1.192) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xact.c.diff?r1=1.191&r2=1.192) pgsql/src/backend/storage/buffer: bufmgr.c (r1.179 -> r1.180) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/bufmgr.c.diff?r1=1.179&r2=1.180) localbuf.c (r1.59 -> r1.60) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/localbuf.c.diff?r1=1.59&r2=1.60) pgsql/src/backend/storage/lmgr: proc.c (r1.154 -> r1.155) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/proc.c.diff?r1=1.154&r2=1.155) pgsql/src/backend/utils/resowner: resowner.c (r1.7 -> r1.8) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/resowner/resowner.c.diff?r1=1.7&r2=1.8) pgsql/src/include/storage: bufmgr.h (r1.87 -> r1.88) (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/bufmgr.h.diff?r1=1.87&r2=1.88)