Add relallfrozen to pg_class
authorMelanie Plageman <melanieplageman@gmail.com>
Mon, 3 Mar 2025 16:18:05 +0000 (11:18 -0500)
committerMelanie Plageman <melanieplageman@gmail.com>
Mon, 3 Mar 2025 16:18:05 +0000 (11:18 -0500)
commit99f8f3fbbc8f743290844e8c676d39dad11c5d5d
treebfa0507e88c83d28053a7e8beb36d8d61b43b871
parent8492feb98f6df3f0f03e84ed56f0d1cbb2ac514c
Add relallfrozen to pg_class

Add relallfrozen, an estimate of the number of pages marked all-frozen
in the visibility map.

pg_class already has relallvisible, an estimate of the number of pages
in the relation marked all-visible in the visibility map. This is used
primarily for planning.

relallfrozen, together with relallvisible, is useful for estimating the
outstanding number of all-visible but not all-frozen pages in the
relation for the purposes of scheduling manual VACUUMs and tuning vacuum
freeze parameters.

A future commit will use relallfrozen to trigger more frequent vacuums
on insert-focused workloads with significant volume of frozen data.

Bump catalog version

Author: Melanie Plageman <melanieplageman@gmail.com>
Reviewed-by: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: Robert Treat <rob@xzilla.net>
Reviewed-by: Corey Huinker <corey.huinker@gmail.com>
Reviewed-by: Greg Sabino Mullane <htamfids@gmail.com>
Discussion: https://postgr.es/m/flat/CAAKRu_aj-P7YyBz_cPNwztz6ohP%2BvWis%3Diz3YcomkB3NpYA--w%40mail.gmail.com
14 files changed:
doc/src/sgml/catalogs.sgml
src/backend/access/heap/vacuumlazy.c
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/commands/analyze.c
src/backend/commands/cluster.c
src/backend/commands/vacuum.c
src/backend/statistics/relation_stats.c
src/backend/utils/cache/relcache.c
src/include/catalog/catversion.h
src/include/catalog/pg_class.h
src/include/commands/vacuum.h
src/test/regress/expected/stats_import.out
src/test/regress/sql/stats_import.sql