pgsql: Prefer standby promotion over recovery pause.

From: Fujii Masao <fujii(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Prefer standby promotion over recovery pause.
Date: 2020-03-24 03:50:04
Message-ID: E1jGaZo-00048u-8S@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Prefer standby promotion over recovery pause.

Previously if a promotion was triggered while recovery was paused,
the paused state continued. Also recovery could be paused by executing
pg_wal_replay_pause() even while a promotion was ongoing. That is,
recovery pause had higher priority over a standby promotion.
But this behavior was not desirable because most users basically wanted
the recovery to complete as soon as possible and the server to become
the master when they requested a promotion.

This commit changes recovery so that it prefers a promotion over
recovery pause. That is, if a promotion is triggered while recovery
is paused, the paused state ends and a promotion continues. Also
this commit makes recovery pause functions like pg_wal_replay_pause()
throw an error if they are executed while a promotion is ongoing.

Internally, this commit adds new internal function PromoteIsTriggered()
that returns true if a promotion is triggered. Since the name of
this function and the existing function IsPromoteTriggered() are
confusingly similar, the commit changes the name of IsPromoteTriggered()
to IsPromoteSignaled, as more appropriate name.

Author: Fujii Masao
Reviewed-by: Atsushi Torikoshi, Sergei Kornilov
Discussion: https://postgr.es/m/00c194b2-dbbb-2e8a-5b39-13f14048ef0a@oss.nttdata.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/496ee647ecd2917369ffcf1eaa0b2cdca07c8730

Modified Files
--------------
doc/src/sgml/config.sgml | 3 ++
doc/src/sgml/func.sgml | 7 ++++
src/backend/access/transam/xlog.c | 67 ++++++++++++++++++++++++++++++----
src/backend/access/transam/xlogfuncs.c | 14 +++++++
src/backend/postmaster/startup.c | 12 +++---
src/include/access/xlog.h | 1 +
src/include/postmaster/startup.h | 4 +-
7 files changed, 93 insertions(+), 15 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2020-03-24 04:40:16 Re: pgsql: Improve autovacuum logging for aggressive and anti-wraparound ru
Previous Message Michael Paquier 2020-03-24 03:14:07 pgsql: Move routine building restore_command to src/common/