]> granicus.if.org Git - postgresql/commit
Give the ResourceOwner mechanism full responsibility for releasing buffer
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 16 Oct 2004 18:57:26 +0000 (18:57 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 16 Oct 2004 18:57:26 +0000 (18:57 +0000)
commitfdd13f156814f81732c188788ab1b7b14c59f4da
tree2ca797d2b320de27c01ec61f5480558a05c27f4d
parent1c2de4774620469375e6393fbdbcdaffb0c2d0b5
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.
src/backend/access/transam/xact.c
src/backend/storage/buffer/bufmgr.c
src/backend/storage/buffer/localbuf.c
src/backend/storage/lmgr/proc.c
src/backend/utils/resowner/resowner.c
src/include/storage/bufmgr.h