| From: | Masahiko Sawada <msawada(at)postgresql(dot)org> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Refresh autovacuum costs while waiting for parallel workers. |
| Date: | 2026-10-01 13:20:37 |
| Message-ID: | E1xCGiD-000000020Yt-3WAj@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Refresh autovacuum costs while waiting for parallel workers.
Commit 1ff3180ca01 made a parallel autovacuum leader propagate changes
to the cost-based delay parameters to its workers only from
vacuum_delay_point(), which it no longer reaches once it is waiting in
WaitForParallelWorkersToFinish(). While waiting, the leader neither
processed a config reload nor noticed a change in the number of
autovacuum workers sharing the cost limit, so its workers kept running
with stale parameters until they finished.
Fix by refreshing and propagating the parameters on every wakeup of
that wait loop, and by setting the latches of the balanced autovacuum
workers when their count changes so that a waiting leader wakes up.
A regression test will be added in a separate commit.
Backpatch to v19, where parallel autovacuum was introduced.
Reported-by: Nikolay Samokhvalov <nik(at)postgres(dot)ai>
Author: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
Reviewed-by: Manu <manuelreyesbravo(at)gmail(dot)com>
Reviewed-by: Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>
Reviewed-by: Daniel Gustafsson <daniel(at)yesql(dot)se>
Reviewed-by: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Discussion: https://postgr.es/m/CAM527d-GL=Jp2EJXBSnVBGPK-4XEZwWof5Cv8P0hghS_og6oAg@mail.gmail.com
Backpatch-through: 19
Branch
------
REL_19_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/4a80214270a76316d2967ed1275b969914fa0267
Modified Files
--------------
src/backend/access/transam/parallel.c | 11 +++++++++++
src/backend/commands/vacuumparallel.c | 35 +++++++++++++++++++++++++++++++++++
src/backend/postmaster/autovacuum.c | 25 +++++++++++++++++++++++++
src/include/commands/vacuum.h | 1 +
4 files changed, 72 insertions(+)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2026-10-01 22:31:05 | pgsql: Report per-index vacuum progress in pg_stat_progress_vacuum |
| Previous Message | Masahiko Sawada | 2026-10-01 13:20:33 | pgsql: Refresh autovacuum costs while waiting for parallel workers. |