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
Showing
- src/backend/access/transam/twophase.c 1 addition, 5 deletionssrc/backend/access/transam/twophase.c
- src/backend/access/transam/xact.c 2 additions, 6 deletionssrc/backend/access/transam/xact.c
- src/backend/catalog/storage.c 1 addition, 5 deletionssrc/backend/catalog/storage.c
- src/backend/storage/buffer/bufmgr.c 41 additions, 1 deletionsrc/backend/storage/buffer/bufmgr.c
- src/backend/storage/buffer/localbuf.c 40 additions, 0 deletionssrc/backend/storage/buffer/localbuf.c
- src/backend/storage/smgr/smgr.c 61 additions, 4 deletionssrc/backend/storage/smgr/smgr.c
- src/include/storage/buf_internals.h 1 addition, 0 deletionssrc/include/storage/buf_internals.h
- src/include/storage/bufmgr.h 1 addition, 0 deletionssrc/include/storage/bufmgr.h
- src/include/storage/smgr.h 2 additions, 2 deletionssrc/include/storage/smgr.h
Loading
Please register or sign in to comment