Add routines for marking buffers dirty efficiently This commit introduces new internal bufmgr routines for marking shared buffers as dirty: * MarkDirtyUnpinnedBuffer() * MarkDirtyRelUnpinnedBuffers() * MarkDirtyAllUnpinnedBuffers()
These functions provide an efficient mechanism to respectively mark one buffer, all the buffers of a relation, or the entire shared buffer pool as dirty, something that can be useful to force patterns for the checkpointer. MarkDirtyUnpinnedBufferInternal(), an extra routine, is used by these three, to mark as dirty an unpinned buffer. They are intended as developer tools to manipulate buffer dirtiness in bulk, and will be used in a follow-up commit. Author: Nazir Bilal Yavuz <[email protected]> Reviewed-by: Andres Freund <[email protected]> Reviewed-by: Aidar Imamov <[email protected]> Reviewed-by: Amit Kapila <[email protected]> Reviewed-by: Joseph Koshakow <[email protected]> Reviewed-by: Michael Paquier <[email protected]> Reviewed-by: Yuhang Qiu <[email protected]> Reviewed-by: Xuneng Zhou <[email protected]> Discussion: https://postgr.es/m/can55fz0h_yosqqutxv6des1rw8ig6wca8cr9rjk358yrmxz...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/9660906dbd696146da2c1d8bfdce26b1a2bed1c3 Modified Files -------------- src/backend/storage/buffer/bufmgr.c | 188 ++++++++++++++++++++++++++++++++++++ src/include/storage/bufmgr.h | 8 ++ 2 files changed, 196 insertions(+)
