public inbox for [email protected]  
help / color / mirror / Atom feed
From: Heikki Linnakangas <[email protected]>
To: Matthias van de Meent <[email protected]>
Cc: Ashutosh Bapat <[email protected]>
Cc: Robert Haas <[email protected]>
Cc: Andres Freund <[email protected]>
Cc: pgsql-hackers <[email protected]>
Cc: [email protected]
Subject: Re: Better shared data structure management and resizable shared data structures
Date: Sun, 5 Apr 2026 22:35:58 +0300
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAEze2Whd_cB4oZwZq-Ar1KgUGiA_gZPPWOvUcw_3LC7sJJB67w@mail.gmail.com>
References: <CAExHW5vM1bneLYfg0wGeAa=52UiJ3z4vKd3AJ72X8Fw6k3KKrg@mail.gmail.com>
	<CA+Tgmob8ot7qam7a650nx_4jyEoFLs8s_kPMc1+EB7-dr56=WA@mail.gmail.com>
	<[email protected]>
	<CA+TgmoauqYXm8iA3FGRAVKxYShUxWBiS_MSLmQpTrmO7wNHamw@mail.gmail.com>
	<[email protected]>
	<CAExHW5uTNWOSxJDWQAUnS0tZawob2_J3dRAtc67NHNZ98X4_xA@mail.gmail.com>
	<CAExHW5t439y61YD9bc7d5wZWHp6J=M43Qu3eEZOBPguZML7o2A@mail.gmail.com>
	<CAExHW5v5FVZbsO9sLzztMZ11C3hgGStE=HkkV2bQkCyncess4w@mail.gmail.com>
	<[email protected]>
	<CAExHW5tCC0T1ky=Jnq-AvMxa67Adaw7aQ4iQAO=BSdHcbSNBVg@mail.gmail.com>
	<[email protected]>
	<CAExHW5tS7GncN90oJWOSzW_3F1EHL9xwe59L7Req3nUVgmObUw@mail.gmail.com>
	<[email protected]>
	<CAExHW5sYgt=XekOoAE-Tu_Dv8obWZCjCqAPT9vtN2D4m=M=drQ@mail.gmail.com>
	<[email protected]>
	<CAEze2Whd_cB4oZwZq-Ar1KgUGiA_gZPPWOvUcw_3LC7sJJB67w@mail.gmail.com>

On 04/04/2026 16:51, Matthias van de Meent wrote:
>> +++ b/src/include/storage/shmem.h
>> +/*
>> + * Shared memory is reserved and allocated in stages at postmaster startup,
>> + * and in EXEC_BACKEND mode, there's some extra work done to "attach" to them
>> + * at backend startup.  ShmemCallbacks holds callback functions that are
>> + * called at different stages.
>> + */
>> +typedef struct ShmemCallbacks
> 
> Maybe this should also have the opportunity for a (before_)shmem_exit callback?

Hmm, yeah, perhaps, but I'm going to skip that for now. We already have 
a mechanism for shmem-exit callbacks, and I'm not sure how that would 
plug into this. I think we can do that later if it turns out to be a 
good idea, and I don't think it changes the parts that's included in the 
patches now.

>> + * on-demaind in a backend.  If a subsystem sets this flag, the callbacks are
>> + * called immediately after registration, to initialize or attach to the
>> + * requested shared memory areas.
> 
> Ideally we only immediately call the callbacks if we're under
> postmaster, or in a standalone backend; we shouldn't allocate shmem
> for some preloaded libraries that set this flag, at least not ahead of
> loading all preload libraries.

Right, the SHMEM_CALLBACKS_ALLOW_AFTER_STARTUP flag doesn't do anything 
if called during shared_preload_libraries processing. I'll re-word the 
comment to clarify that.

> While it's mostly mechanical changes, it did make me notice the rather
> annoying allocation patterns by XLOGShmemRequest. It allocates various
> types of data in one go (which, in principle, is fine) but in doing so
> it adds its own alignment tricks etc, and I'm not super stoked about
> that. If time allows, could we clean that up?

I'm not going to cram it into these patches, but +1.

- Heikki






view thread (82+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: Better shared data structure management and resizable shared data structures
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox