aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFujii Masao <fujii@postgresql.org>2016-03-06 02:29:04 +0900
committerFujii Masao <fujii@postgresql.org>2016-03-06 02:29:04 +0900
commitd34794f7d5566effd342dd0ebaca3de3b48656f0 (patch)
treef804e0cd261b3b6b835be1fa0153f00ce63b7f76 /src
parent60690a6fe8351995b1eeb9a53f2b634c3bce3a3d (diff)
downloadpostgresql-d34794f7d5566effd342dd0ebaca3de3b48656f0.tar.gz
postgresql-d34794f7d5566effd342dd0ebaca3de3b48656f0.zip
Ignore recovery_min_apply_delay until recovery has reached consistent state
Previously recovery_min_apply_delay was applied even before recovery had reached consistency. This could cause us to wait a long time unexpectedly for read-only connections to be allowed. It's problematic because the standby was useless during that wait time. This patch changes recovery_min_apply_delay so that it's applied once the database has reached the consistent state. That is, even if the delay is set, the standby tries to replay WAL records as fast as possible until it has reached consistency. Author: Michael Paquier Reviewed-By: Julien Rouhaud Reported-By: Greg Clough Backpatch: 9.4, where recovery_min_apply_delay was added Bug: #13770 Discussion: http://www.postgresql.org/message-id/20151111155006.2644.84564@wrigleys.postgresql.org
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/transam/xlog.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 94b79ac49d5..00f139a0f38 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -5715,6 +5715,10 @@ recoveryApplyDelay(XLogReaderState *record)
if (recovery_min_apply_delay <= 0)
return false;
+ /* no delay is applied on a database not yet consistent */
+ if (!reachedConsistency)
+ return false;
+
/*
* Is it a COMMIT record?
*