Re: make MaxBackends available in _PG_init
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Julien Rouhaud <rjuju123@gmail.com>, Andres Freund <andres@anarazel.de>, Michael Paquier <michael@paquier.xyz>, "Bossart, Nathan" <bossartn@amazon.com>, Fujii Masao <masao.fujii@oss.nttdata.com>, "wangsh.fnst@fujitsu.com" <wangsh.fnst@fujitsu.com>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, Greg Sabino Mullane <htamfids@gmail.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2022-04-19T00:12:20Z
Lists: pgsql-hackers
On Mon, Apr 18, 2022 at 07:33:54PM -0400, Tom Lane wrote: > Nathan Bossart <nathandbossart@gmail.com> writes: >> I noticed that requests for more LWLocks follow a similar pattern as >> regular shared memory requests, and I figured that we would want to do >> something similar for those, but I wasn't sure exactly how to proceed. I >> saw two options: 1) use shmem_request_hook for both regular requests and >> LWLock requests or 2) introduce an lwlock_request_hook. My instinct was >> that option 1 was preferable, > > Yeah, I agree, which says that maybe the hook name needs to be something > else (not that I have a good proposal). > >> but AFAICT this requires introducing a new >> external variable for inspecting whether the request is made at a valid >> time. > > Uh, why? It'd be the core code's responsibility to place the hook > call at a point where you could do both. I'm looking for a clean way to ERROR if someone attempts to call RequestAddinShmemSpace() or RequestNamedLWLockTranche() outside of the hook. Currently, we are using static variables in ipci.c and lwlock.c to silently ignore invalid requests. I could add a new 'extern bool' called 'process_shmem_requests_in_progress', but extensions could easily hack around that to allow requests in _PG_init(). Maybe I am overthinking all this and that is good enough. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
Commits
-
Add a new shmem_request_hook hook.
- 4f2400cb3f10 15.0 landed
-
Remove non-functional code for unloading loadable modules.
- ab02d702ef08 15.0 landed
-
Fix misleading comments about background worker registration.
- 701d918a426b 15.0 landed
-
Revert the addition of GetMaxBackends() and related stuff.
- 7fc0e7de9fb8 15.0 landed
-
Fix typo in multixact.c
- 0147fc7c8c92 15.0 landed
-
Reduce more the number of calls to GetMaxBackends()
- 4567596316d1 15.0 landed
-
Remove MaxBackends variable in favor of GetMaxBackends() function.
- aa64f23b0292 15.0 landed
-
Fix comments about bgworker registration before MaxBackends initialization
- 5ecd0183fb6a 15.0 landed
-
Fix bogus assertion in BootstrapModeMain().
- e12694523e7e 15.0 cited
-
Make sure MaxBackends is always set
- dfbba2c86cc8 9.3.0 cited