]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Refactor how some aux processes advertise their ProcNumber
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 8 Jul 2026 17:33:36 +0000 (20:33 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 8 Jul 2026 17:33:36 +0000 (20:33 +0300)
commit842169b6c110f48c9f7a2dc29d0cedcc97c2ff29
tree13ac0f175c8ea5f0fb1330ec9d848e1359b9a15b
parentad7877b00a4232d71bb4cb63c22f9d748e65e3f7
Refactor how some aux processes advertise their ProcNumber

This moves the responsibility of setting the ProcGlobal->walwriterProc
and checkpointerProc fields into InitAuxiliaryProcess. Also switch to
the same pattern to advertise the autovacuum launcher's ProcNumber,
replacing the ad hoc av_launcherpid field in shared memory. This can
easily be extended to other aux processes in the future, if other
processes need to find them.

Switch to pg_atomic_uint32 for the fields. Seems easier to reason
about than volatile pointers. There was some precedence for that, as
were already using pg_atomic_uint32 for the procArrayGroupFirst and
clogGroupFirst fields, which also store ProcNumbers.

Todo: We could also replace WalRecv->procno with this, but that's a
little more code churn so I left that for the future.

Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://www.postgresql.org/message-id/818bafaf-1e77-4c78-8037-d7120878d87c@iki.fi
src/backend/access/transam/xlog.c
src/backend/postmaster/autovacuum.c
src/backend/postmaster/checkpointer.c
src/backend/postmaster/walwriter.c
src/backend/storage/lmgr/proc.c
src/include/storage/proc.h