Scan the buffer pool just once, not once per fork, during relation drop.
This provides a speedup of about 4X when NBuffers is large enough.
There is also a useful reduction in sinval traffic, since we
only do CacheInvalidateSmgr() once not once per fork.
Simon Riggs, reviewed and somewhat revised by Tom Lane
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/ece01aae479227d9836294b287d872c5a6146a11
Modified Files
--------------
src/backend/access/transam/twophase.c | 6 +---
src/backend/access/transam/xact.c | 8 +---
src/backend/catalog/storage.c | 6 +---
src/backend/storage/buffer/bufmgr.c | 42 +++++++++++++++++++++-
src/backend/storage/buffer/localbuf.c | 40 ++++++++++++++++++++
src/backend/storage/smgr/smgr.c | 65 +++++++++++++++++++++++++++++++--
src/include/storage/buf_internals.h | 1 +
src/include/storage/bufmgr.h | 1 +
src/include/storage/smgr.h | 4 +-
9 files changed, 150 insertions(+), 23 deletions(-)