pgsql: Add a new shmem_request_hook hook.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Add a new shmem_request_hook hook.
Date: 2022-05-13 13:49:36
Message-ID: E1npVfj-000WBN-PS@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Add a new shmem_request_hook hook.

Currently, preloaded libraries are expected to request additional
shared memory and LWLocks in _PG_init(). However, it is not unusal
for such requests to depend on MaxBackends, which won't be
initialized at that time. Such requests could also depend on GUCs
that other modules might change. This introduces a new hook where
modules can safely use MaxBackends and GUCs to request additional
shared memory and LWLocks.

Furthermore, this change restricts requests for shared memory and
LWLocks to this hook. Previously, libraries could make requests
until the size of the main shared memory segment was calculated.
Unlike before, we no longer silently ignore requests received at
invalid times. Instead, we FATAL if someone tries to request
additional shared memory or LWLocks outside of the hook.

Nathan Bossart and Julien Rouhaud

Discussion: https://postgr.es/m/20220412210112.GA2065815%40nathanxps13
Discussion: https://postgr.es/m/Yn2jE/lmDhKtkUdr(at)paquier(dot)xyz

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4f2400cb3f10aa79f99fba680c198237da28dd38

Modified Files
--------------
contrib/pg_prewarm/autoprewarm.c | 17 +++++++++++++++-
contrib/pg_stat_statements/pg_stat_statements.c | 26 +++++++++++++++++--------
doc/src/sgml/xfunc.sgml | 12 ++++++++++--
src/backend/postmaster/postmaster.c | 5 +++++
src/backend/storage/ipc/ipci.c | 20 ++++++-------------
src/backend/storage/lmgr/lwlock.c | 18 +++++------------
src/backend/utils/init/miscinit.c | 15 ++++++++++++++
src/include/miscadmin.h | 5 +++++
src/tools/pgindent/typedefs.list | 1 +
9 files changed, 81 insertions(+), 38 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2022-05-13 14:19:27 pgsql: Indent protocol.sgml
Previous Message Etsuro Fujita 2022-05-13 09:35:57 pgsql: Doc: Improve description of the "parallel_commit" option for pos