Use scanned_pages to decide when to failsafe check.
commit07eef53955ea9885dd3e4701b7eaa34ccdf2ae02
authorPeter Geoghegan <pg@bowt.ie>
Thu, 22 Dec 2022 18:41:40 +0000 (22 10:41 -0800)
committerPeter Geoghegan <pg@bowt.ie>
Thu, 22 Dec 2022 18:41:40 +0000 (22 10:41 -0800)
tree2fee7a53e94bafc3ff4bdace282f754b43cf471b
parent4ce3afb82ecfbf64d4f6247e725004e1da30f47c
Use scanned_pages to decide when to failsafe check.

Perform a failsafe check every time VACUUM's first heap scan scans a
further FAILSAFE_EVERY_PAGES pages, rather than using an approach based
on the number of physical blocks that our current blkno is from the
blkno at the time of the previous failsafe check.  That way VACUUM will
perform a failsafe check every time it has scanned a uniform number of
pages, without it mattering when or how VACUUM skipped pages using the
visibility map.

Sami Imseih, with changes to FAILSAFE_EVERY_PAGES comments added by me.

Author: Sami Imseih <simseih@amazon.com>
Reviewed-By: Peter Geoghegan <pg@bowt.ie>
Discussion: https://postgr.es/m/401CE010-4049-4B94-9961-0B610A5D254D%40amazon.com
src/backend/access/heap/vacuumlazy.c