Optimize DropRelFileNodesAllBuffers() for recovery.
authorAmit Kapila <[email protected]>
Wed, 13 Jan 2021 02:16:11 +0000 (07:46 +0530)
committerAmit Kapila <[email protected]>
Wed, 13 Jan 2021 02:16:11 +0000 (07:46 +0530)
commitbea449c635c0e68e21610593594c1e5d52842cdd
tree3bb08390afd7bbcc4f846b3cfa96efd2dc24f05c
parentfce7d0e6efbef304e81846c75eddf73099628d10
Optimize DropRelFileNodesAllBuffers() for recovery.

Similar to commit d6ad34f341, this patch optimizes
DropRelFileNodesAllBuffers() by avoiding the complete buffer pool scan and
instead find the buffers to be invalidated by doing lookups in the
BufMapping table.

This optimization helps operations where the relation files need to be
removed like Truncate, Drop, Abort of Create Table, etc.

Author: Kirk Jamison
Reviewed-by: Kyotaro Horiguchi, Takayuki Tsunakawa, and Amit Kapila
Tested-By: Haiying Tang
Discussion: https://postgr.es/m/OSBPR01MB3207DCA7EC725FDD661B3EDAEF660@OSBPR01MB3207.jpnprd01.prod.outlook.com
src/backend/storage/buffer/bufmgr.c
src/backend/storage/smgr/smgr.c
src/include/storage/bufmgr.h