On Sun, Apr 17, 2022 at 7:36 AM Andres Freund <and...@anarazel.de> wrote: > > Part of the problem here is that we determine VACUUM's FreezeLimit by > > calculating `OldestXmin - vacuum_freeze_min_age` (more or less [1]). > > What the message outputs is OldestXmin and not FreezeLimit though.
My higher level point is that there is a general tendency to assume that OldestXmin is the same thing as NextXID, which it isn't. It's an easy enough mistake to make, though, in part because they're usually quite close together. The "Routine Vacuuming" docs seem to suggest that they're the same thing, or at least that's what I take away from the following sentence: "This implies that if a table is not otherwise vacuumed, autovacuum will be invoked on it approximately once every autovacuum_freeze_max_age minus vacuum_freeze_min_age transactions". > And FreezeLimit doesn't affect "dead but not yet removable". But OldestXmin affects FreezeLimit. Anyway, I'm not opposed to showing the age at the start as well. But from the point of view of issues like this tenk1 issue, it would be more useful to just report on new_rel_allvisible. It would also be more useful to users. -- Peter Geoghegan