pgsql: Set wal_receiver_create_temp_slot PGC_POSTMASTER

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Set wal_receiver_create_temp_slot PGC_POSTMASTER
Date: 2020-03-27 19:24:59
Message-ID: E1jHubD-0001fM-98@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Set wal_receiver_create_temp_slot PGC_POSTMASTER

Commit 329730827848 gave walreceiver the ability to create and use a
temporary replication slot, and made it controllable by a GUC (enabled
by default) that can be changed with SIGHUP. That's useful but has two
problems: one, it's possible to cause the origin server to fill its disk
if the slot doesn't advance in time; and also there's a disconnect
between state passed down via the startup process and GUCs that
walreceiver reads directly.

We handle the first problem by setting the option to disabled by
default. If the user enables it, its on their head to make sure that
disk doesn't fill up.

We handle the second problem by passing the flag via startup rather than
having walreceiver acquire it directly, and making it PGC_POSTMASTER
(which ensures a walreceiver always has the fresh value). A future
commit can relax this (to PGC_SIGHUP again) by having the startup
process signal walreceiver to shutdown whenever the value changes.

Author: Sergei Kornilov <sk(at)zsrv(dot)org>
Reviewed-by: Michael Paquier <michael(at)paquier(dot)xyz>
Reviewed-by: Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Discussion: https://postgr.es/m/20200122055510.GH174860@paquier.xyz

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/092c6936de49effe63daad94855bcd8ef26a09dd

Modified Files
--------------
doc/src/sgml/config.sgml | 6 +--
src/backend/access/transam/xlog.c | 4 +-
src/backend/replication/walreceiver.c | 62 ++++++++++++---------------
src/backend/replication/walreceiverfuncs.c | 28 +++++++++---
src/backend/utils/misc/guc.c | 4 +-
src/backend/utils/misc/postgresql.conf.sample | 4 +-
src/include/access/xlog.h | 1 +
src/include/replication/walreceiver.h | 4 +-
8 files changed, 63 insertions(+), 50 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andrew Dunstan 2020-03-27 19:35:15 Re: pgsql: Provide a TLS init hook
Previous Message Tom Lane 2020-03-27 18:47:40 pgsql: Rearrange validity checks for plpgsql "simple" expressions.