Re: Trigger more frequent autovacuums of heavy insert tables

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Robert Treat <rob@xzilla.net>
Cc: Melanie Plageman <melanieplageman@gmail.com>, Greg Sabino Mullane <htamfids@gmail.com>, Robert Haas <robertmhaas@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>, Andres Freund <andres@anarazel.de>, Peter Geoghegan <pg@bowt.ie>, David Rowley <dgrowley@gmail.com>, Corey Huinker <corey.huinker@gmail.com>
Date: 2025-02-26T17:25:13Z
Lists: pgsql-hackers
On Wed, Feb 26, 2025 at 11:17:06AM -0500, Robert Treat wrote:
> It strikes me as a bit odd to have this extra wording in the pg_class
> documentation:
> 
> + Every all-frozen page must also be marked
> +       all-visible in the visibility map, so
> +       <structfield>relallfrozen</structfield> should be less than or equal to
> +       <structfield>relallvisible</structfield>. However, if either field is
> +       updated manually or if the visibility map is corrupted, it is possible
> +       for <structfield>relallfrozen</structfield> to exceed
> +       <structfield>relallvisible</structfield>.
> 
> For example, we don't document that rellallvisible should never exceed
> relpages, and we aren't normally in the habit of documenting weird
> behavior that might happen if people go updating the system catalogs.
> Maybe it's just me, but when I read this earlier, I thought there
> might be some intended use case for updating the catalog manually that
> you had in mind and so the comments were warranted (and indeed, it's
> part of why I thought the warning would be useful for users). But upon
> reading the thread more and another pass through your updated patches,
> this doesn't seem to be the case, and I wonder if this language might
> be more encouraging of people updating catalogs than we would
> typically be.

+1.  If we did want to add more information about the ordinary expectations
of relallfrozen and friends here, I'd suggest doing so in a separate patch.
IMHO the usual "This is only an estimate..." wording is sufficient for the
introduction of relallfrozen.

-- 
nathan



Commits

  1. doc: Update formula for vacuum insert threshold.

  2. Redefine pg_class.reltuples to be -1 before the first VACUUM or ANALYZE.

  3. Measure the number of all-visible pages for use in index-only scan costing.