Wake up autovacuum launcher from postmaster when a worker exits
Heikki Linnakangas <hlinnaka@iki.fi>
From: Heikki Linnakangas <hlinnaka@iki.fi>
To: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2026-01-08T19:57:38Z
Lists: pgsql-hackers
Attachments
- v1-0001-Wake-up-autovacuum-launcher-from-postmaster-when-.patch (text/x-patch) patch v1-0001
When an autovacuum worker exits, ProcKill() sends SIGUSR2 to the launcher. I propose moving that responsibility to the postmaster, because: * It's simpler IMHO * The postmaster is already responsible for sending the signal if fork() fails * It makes it consistent with background workers. When a background worker exits, the postmaster sends the signal to the launching process (if requested). * Postmaster doesn't need to worry about sending the signal to the wrong process if the launcher's PID is reused, because it always has up-to-date PID information, because the launcher is postmaster's child process. That risk was negligible to begin with, but this eliminates completely, so we don't need the comment excusing it it anymore. I'm a little surprised it wasn't done this way to begin with, so I wonder if I'm missing something? - Heikki
Commits
-
Wake up autovacuum launcher from postmaster when a worker exits
- d9c3c9436537 19 (unreleased) landed
-
Add a multi-worker capability to autovacuum. This allows multiple worker
- e2a186b03cc1 8.3.0 cited