mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Fast promote mode skips checkpoint at end of recovery.
pg_ctl promote -m fast will skip the checkpoint at end of recovery so that we can achieve very fast failover when the apply delay is low. Write new WAL record XLOG_END_OF_RECOVERY to allow us to switch timeline correctly for downstream log readers. If we skip synchronous end of recovery checkpoint we request a normal spread checkpoint so that the window of re-recovery is low. Simon Riggs and Kyotaro Horiguchi, with input from Fujii Masao. Review by Heikki Linnakangas
This commit is contained in:
@@ -217,6 +217,12 @@ typedef struct xl_restore_point
|
||||
char rp_name[MAXFNAMELEN];
|
||||
} xl_restore_point;
|
||||
|
||||
/* End of recovery mark, when we don't do an END_OF_RECOVERY checkpoint */
|
||||
typedef struct xl_end_of_recovery
|
||||
{
|
||||
TimestampTz end_time;
|
||||
TimeLineID ThisTimeLineID;
|
||||
} xl_end_of_recovery;
|
||||
|
||||
/*
|
||||
* XLogRecord is defined in xlog.h, but we avoid #including that to keep
|
||||
|
@@ -64,6 +64,7 @@ typedef struct CheckPoint
|
||||
#define XLOG_PARAMETER_CHANGE 0x60
|
||||
#define XLOG_RESTORE_POINT 0x70
|
||||
#define XLOG_FPW_CHANGE 0x80
|
||||
#define XLOG_END_OF_RECOVERY 0x90
|
||||
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user