Re: make MaxBackends available in _PG_init
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: "Bossart, Nathan" <bossartn@amazon.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2021-08-02T22:42:04Z
Lists: pgsql-hackers
Hi, On 2021-08-02 22:35:13 +0000, Bossart, Nathan wrote: > On 8/2/21, 3:12 PM, "Andres Freund" <andres@anarazel.de> wrote: > > I think this is overblown. We already size resources *after* > > shared_preload_libraries' _PG_init() runs, because that's the whole point of > > shared_preload_libraries. What's proposed in this thread is to *disallow* > > increasing resource usage in s_p_l _PG_init(), to make one specific case > > simpler - but it'll actually also make things more complicated, because other > > resources will still only be sized after all of s_p_l has been processed. > > True. Perhaps the comments should reference the possibility that a > library will adjust resource usage to explain why > InitializeMaxBackends() is where it is. I've wondered, independent of this thread, about not making MaxBackends externally visible, and requiring a function call to access it. It should be easier to find cases of misuse if we errored out when accessed at the wrong time. And we could use that opportunity to add flags that determine which types of backends are included (e.g. not including autovac, or additionally including aux workers or prepared xacts). Greetings, Andres Freund
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