Re: Add pg_stat_autovacuum_priority
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Sami Imseih <samimseih@gmail.com>
Cc: Robert Treat <rob@xzilla.net>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, satyanarlapuram@gmail.com, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-03-31T15:38:26Z
Lists: pgsql-hackers
I didn't read any of the thread, but I looked at the patches. 0001: + * force_scores set to true forces the computation of a score. This is useful for + * tools that wish to inspect scores outside of the do_vacuum() path. I'm of two minds about this new function parameter. On one hand, I see the utility of forcing score calculations even when autovacuum is disabled. On the other hand, when autovacuum is disabled, the scores are actually 0.0, and it's probably a good idea to report exactly what autovacuum workers see. I also see that we're not forcing the computation of the (M)XID scores. Is that intentional? I wonder if we can rework this function to always calculate the scores, even if autovacuum is disabled or !force_vacuum. This way, both paths are doing the exact same thing and reporting the same scores. We might still want an extra parameter to avoid DEBUG3 in the system view path, but that seems like a reasonable difference between the two. 0002: Seems okay to me. 0003: + <row> + <entry role="catalog_table_entry"><para role="column_definition"> + <structfield>vacuum_dead_score</structfield> <type>double precision</type> + </para> + <para> + Score component based on the estimated number of dead tuples + needing removal by vacuum. + </para></entry> + </row> I think we should make sure the column names align with the names given to the new parameters [0] and the new "Autovacuum Prioritization" section in the docs [1]. [0] https://www.postgresql.org/docs/devel/runtime-config-vacuum.html#GUC-AUTOVACUUM-VACUUM-SCORE-WEIGHT [1] https://www.postgresql.org/docs/devel/routine-vacuuming.html#AUTOVACUUM-PRIORITY -- nathan
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix double-free in pg_stat_autovacuum_scores.
- 71ff232a5bc4 19 (unreleased) landed
-
Add LOG_NEVER error level code.
- 60165db6e1f2 19 (unreleased) landed
-
Add pg_stat_autovacuum_scores system view.
- 87f61f0c8280 19 (unreleased) landed
-
Remove recheck_relation_needs_vacanalyze().
- 775fe51daaef 19 (unreleased) landed
-
Add elevel parameter to relation_needs_vacanalyze().
- 01876ace1369 19 (unreleased) landed
-
Teach relation_needs_vacanalyze() to always compute scores.
- 53b8ca6881a1 19 (unreleased) landed
-
Refactor relation_needs_vacanalyze().
- 8261ee24fe33 19 (unreleased) landed
-
Add rudimentary table prioritization to autovacuum.
- d7965d65fc5b 19 (unreleased) cited
-
Fix per-relation memory leakage in autovacuum.
- 02502c1bca54 18.0 cited
-
Fix recently-understood problems with handling of XID freezing, particularly
- 48188e1621bb 8.2.0 cited