Add GUC to log long wait times on recovery conflicts.
This commit adds GUC log_recovery_conflict_waits that controls whether
a log message is produced when the startup process is waiting longer than
deadlock_timeout for recovery conflicts. This is useful in determining
if recovery conflicts prevent the recovery from applying WAL.
Note that currently a log message is produced only when recovery conflict
has not been resolved yet even after deadlock_timeout passes, i.e.,
only when the startup process is still waiting for recovery conflict
even after deadlock_timeout.
Author: Bertrand Drouvot, Masahiko Sawada
Reviewed-by: Alvaro Herrera, Kyotaro Horiguchi, Fujii Masao
Discussion: https://postgr.es/m/9a60178c-a853-1440-2cdc-c3af916cff59@amazon.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/0650ff23038bc3eb8d8fd851744db837d921e285
Modified Files
--------------
doc/src/sgml/config.sgml | 22 +++
doc/src/sgml/high-availability.sgml | 6 +
src/backend/storage/buffer/bufmgr.c | 30 ++++
src/backend/storage/ipc/standby.c | 199 ++++++++++++++++++++++----
src/backend/storage/lmgr/proc.c | 48 ++++++-
src/backend/utils/misc/guc.c | 10 +-
src/backend/utils/misc/postgresql.conf.sample | 2 +
src/include/storage/standby.h | 5 +-
8 files changed, 292 insertions(+), 30 deletions(-)