On 2020/04/21 10:59, Michael Paquier wrote:
On Mon, Apr 20, 2020 at 03:26:16PM +0900, Fujii Masao wrote:
Patch attached. I will add this into the first CF for v14.

Thanks!

-    if (IsPromoteSignaled())
+    /*
+     * In 9.1 and 9.2 the postmaster unlinked the promote file inside the
+     * signal handler. It now leaves the file in place and lets the
+     * Startup process do the unlink.
+     */
+    if (IsPromoteSignaled() && stat(PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
      {
-        /*
-         * In 9.1 and 9.2 the postmaster unlinked the promote file inside the
-         * 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(PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
-        {
-            unlink(PROMOTE_SIGNAL_FILE);
-            unlink(FALLBACK_PROMOTE_SIGNAL_FILE);
-            fast_promote = true;
-        }
-        else if (stat(FALLBACK_PROMOTE_SIGNAL_FILE, &stat_buf) == 0)
-        {
-            unlink(FALLBACK_PROMOTE_SIGNAL_FILE);
-            fast_promote = false;
-        }
-
          ereport(LOG, (errmsg("received promote request")));
-
+        unlink(PROMOTE_SIGNAL_FILE);

Thanks for reviewing the patch!

On HEAD, this code means that it is possible to end recovery just by
sending SIGUSR2 to the startup process.

Yes, in this case, non-fast promotion is triggered.

With your patch, this code
now means that in order to finish recovery you need to send SIGUSR2 to
the startup process *and* to create the promote signal file.

Yes, but isn't this the same as the way to trigger fast promotion in HEAD?

Regards,

--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION


Reply via email to