pgsql: Consider triggering VACUUM failsafe during scan.

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема pgsql: Consider triggering VACUUM failsafe during scan.
Дата
Msg-id E1llKiJ-0005BW-BW@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Consider triggering VACUUM failsafe during scan.

The wraparound failsafe mechanism added by commit 1e55e7d1 handled the
one-pass strategy case (i.e. the "table has no indexes" case) by adding
a dedicated failsafe check.  This made up for the fact that the usual
one-pass checks inside lazy_vacuum_all_indexes() cannot ever be reached
during a one-pass strategy VACUUM.

This approach failed to account for two-pass VACUUMs that opt out of
index vacuuming up-front.  The INDEX_CLEANUP off case in the only case
that works like that.

Fix this by performing a failsafe check every 4GB during the first scan
of the heap, regardless of the details of the VACUUM.  This eliminates
the special case, and will make the failsafe trigger more reliably.

Author: Peter Geoghegan <pg@bowt.ie>
Reported-By: Andres Freund <andres@anarazel.de>
Reviewed-By: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/20210424002921.pb3t7h6frupdqnkp@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c242baa4a831ac2e7dcaec85feb410aefa3a996e

Modified Files
--------------
src/backend/access/heap/vacuumlazy.c | 43 ++++++++++++++++--------------------
1 file changed, 19 insertions(+), 24 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Doc: move some catalogs.sgml entries to the right place.
Следующее
От: David Rowley
Дата:
Сообщение: pgsql: Fix setrefs.c code for Result Cache nodes