Re: Refactoring postmaster's code to cleanup after child exit

From: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Refactoring postmaster's code to cleanup after child exit
Date: 2024-11-14 14:13:17
Message-ID: af1f0c44-c23c-42f0-98fb-e715ef780f76@iki.fi
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 09/10/2024 23:40, Heikki Linnakangas wrote:
> I pushed the first three patches, with the new test and one of the small
> refactoring patches. Thanks for all the comments so far! Here is a new
> version of the remaining patches.
>
> Lots of little cleanups and changes here and there since the last
> versions, but the notable bigger changes are:
>
> - There is now a BackendTypeMask datatype, so that if you try to mix up
> bitmasks and plain BackendType values, the compiler will complain.
>
> - pmchild.c has been rewritten per feedback, so that the "pools" of
> PMChild structs are more explicit. The size of each pool is only stated
> once, whereas before the same logic was duplicated in
> MaxLivePostmasterChildren() which calculates the number of slots and in
> InitPostmasterChildSlots() which allocates them.
>
> - In PostmasterStateMachine(), I combined the code to handle
> PM_STOP_BACKENDS and PM_WAIT_BACKENDS. They are essentially the same
> state, except that PM_STOP_BACKENDS first sends the signal to all the
> child processes that it will then wait for. They both needed to build
> the same bitmask of processes to signal or wait for; this eliminates the
> duplication.

Made a few more changes since last patch version:

- Fixed initialization in pmchild.c in single-user and bootstrapping mode
- inlined assign_backendlist_entry() into its only caller; it wasn't
doing much anymore
- cleaned up some leftovers in canAcceptConnections()
- Renamed some functions for clarity, fixed some leftover comments that
still talked about Backend structs and BackendList

With those changes, committed. Thanks for the review!

--
Heikki Linnakangas
Neon (https://neon.tech)

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Noah Misch 2024-11-14 14:35:24 Re: Potential ABI breakage in upcoming minor releases
Previous Message Jan Wieck 2024-11-14 13:50:31 Re: Commit Timestamp and LSN Inversion issue