/* File path names (all relative to $PGDATA) */
#define RECOVERY_COMMAND_FILE "recovery.conf"
#define RECOVERY_COMMAND_DONE "recovery.done"
-#define PROMOTE_SIGNAL_FILE "promote"
-#define FAST_PROMOTE_SIGNAL_FILE "fast_promote"
+#define PROMOTE_SIGNAL_FILE "promote"
+#define FALLBACK_PROMOTE_SIGNAL_FILE "fallback_promote"
/* User-settable parameters */
{
/*
* In 9.1 and 9.2 the postmaster unlinked the promote file inside the
- * signal handler. We now leave the file in place and let the Startup
- * process do the unlink. This allows Startup to know whether we're
- * doing fast or normal promotion. Fast promotion takes precedence.
+ * signal handler. It now leaves the file in place and lets the
+ * Startup process do the unlink. This allows Startup to know whether
+ * it should create a full checkpoint before starting up (fallback
+ * mode). Fast promotion takes precedence.
*/
- if (stat(FAST_PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
+ if (stat(PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
{
- unlink(FAST_PROMOTE_SIGNAL_FILE);
unlink(PROMOTE_SIGNAL_FILE);
+ unlink(FALLBACK_PROMOTE_SIGNAL_FILE);
fast_promote = true;
}
- else if (stat(PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
+ else if (stat(FALLBACK_PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
{
- unlink(PROMOTE_SIGNAL_FILE);
+ unlink(FALLBACK_PROMOTE_SIGNAL_FILE);
fast_promote = false;
}
struct stat stat_buf;
if (stat(PROMOTE_SIGNAL_FILE, &stat_buf) == 0 ||
- stat(FAST_PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
+ stat(FALLBACK_PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
return true;
return false;
}
/*
- * For 9.3 onwards, use fast promotion as the default option. Promotion
+ * For 9.3 onwards, "fast" promotion is performed. Promotion
* with a full checkpoint is still possible by writing a file called
- * "promote", e.g. snprintf(promote_file, MAXPGPATH, "%s/promote",
- * pg_data);
+ * "fallback_promote" instead of "promote"
*/
- snprintf(promote_file, MAXPGPATH, "%s/fast_promote", pg_data);
+ snprintf(promote_file, MAXPGPATH, "%s/promote", pg_data);
if ((prmfile = fopen(promote_file, "w")) == NULL)
{