Re: Refactoring postmaster's code to cleanup after child exit - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: Refactoring postmaster's code to cleanup after child exit
Date
Msg-id af1f0c44-c23c-42f0-98fb-e715ef780f76@iki.fi
Whole thread Raw
In response to Refactoring postmaster's code to cleanup after child exit  (Heikki Linnakangas <hlinnaka@iki.fi>)
List 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)




pgsql-hackers by date:

Previous
From: Jan Wieck
Date:
Subject: Re: Commit Timestamp and LSN Inversion issue
Next
From: Noah Misch
Date:
Subject: Re: Potential ABI breakage in upcoming minor releases