On Tue, Dec 21, 2021 at 1:53 PM Peter Geoghegan <p...@bowt.ie> wrote: > > On Mon, Dec 20, 2021 at 8:40 PM Masahiko Sawada <sawada.m...@gmail.com> wrote: > > BTW a vacuum automatically enters failsafe mode under the situation > > where the user has to run a vacuum in the single-user mode, right? > > Only for the table that had the problem. Maybe there are no other > tables that a database level "VACUUM" will need to spend much time on, > or maybe there are, and they will make it take much much longer (it > all depends). > > The goal of the patch is to make sure that when we're in single user > mode, we'll consistently trigger the failsafe, for every VACUUM > against every table -- not just the table (or tables) whose > relfrozenxid is very old. That's still naive, but much less naive than > simply telling users to VACUUM the whole database in single user mode > while vacuuming indexes, etc.
I understand the patch, thank you for the explanation! I remember Simon proposed a VACUUM command option[1], called FAST_FREEZE, to turn off index cleanup and heap truncation. Now that we have failsafe mechanism probably we can have a VACUUM command option to turn on failsafe mode instead. Regards, [1] https://commitfest.postgresql.org/32/2908/ -- Masahiko Sawada EDB: https://www.enterprisedb.com/