From 530c1b11271cb7f12558f163663648cc14c19476 Mon Sep 17 00:00:00 2001 From: congzhou2603 Date: Tue, 20 Feb 2024 16:57:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E9=9C=80=E5=9B=9E=E6=94=BE=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E6=9E=84=E5=BB=BA=E6=94=B9=E4=B8=BA=E5=90=91Pageworke?= =?UTF-8?q?r=E7=BA=BF=E7=A8=8B=E5=8F=91=E9=80=81sigterm=E4=BF=A1=E5=8F=B7?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E5=B0=86ondemand=5Frealtime=5Fbuild=5Fstatus?= =?UTF-8?q?=E7=BD=AE=E4=B8=BABUILD=5FTO=5FDISABLED?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/ddes/adapter/ss_dms_callback.cpp | 4 ---- .../transam/ondemand_extreme_rto/dispatcher.cpp | 8 ++++---- .../transam/ondemand_extreme_rto/page_redo.cpp | 2 +- .../transam/ondemand_extreme_rto/redo_utils.cpp | 13 ------------- 4 files changed, 5 insertions(+), 22 deletions(-) diff --git a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp index da23734dc..22e672afd 100644 --- a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp +++ b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp @@ -423,10 +423,6 @@ static int CBSwitchoverPromote(void *db_handle, unsigned char origPrimaryId) pg_memory_barrier(); ereport(LOG, (errmodule(MOD_DMS), errmsg("[SS switchover] Starting to promote standby."))); - if (ENABLE_ONDEMAND_REALTIME_BUILD) { - OnDemandWaitRealtimeBuildShutDownInSwitchoverPromoting(); - } - SSNotifySwitchoverPromote(); const int WAIT_PROMOTE = 1200; /* wait 120 sec */ diff --git a/src/gausskernel/storage/access/transam/ondemand_extreme_rto/dispatcher.cpp b/src/gausskernel/storage/access/transam/ondemand_extreme_rto/dispatcher.cpp index 858f28335..ab9beb7f7 100644 --- a/src/gausskernel/storage/access/transam/ondemand_extreme_rto/dispatcher.cpp +++ b/src/gausskernel/storage/access/transam/ondemand_extreme_rto/dispatcher.cpp @@ -420,8 +420,6 @@ void HandleStartupInterruptsForExtremeRto() if (ENABLE_ONDEMAND_REALTIME_BUILD && (SS_PERFORMING_SWITCHOVER || (SS_STANDBY_MODE && DMS_REFORM_TYPE_FOR_FAILOVER_OPENGAUSS))) { Assert(!SS_ONDEMAND_REALTIME_BUILD_DISABLED); - ereport(LOG, (errmsg("[On-demand] start to shutdown realtime build, set status to BUILD_TO_DISABLED."))); - g_instance.dms_cxt.SSRecoveryInfo.ondemand_realtime_build_status = BUILD_TO_DISABLED; proc_exit(0); } else { proc_exit(1); @@ -689,6 +687,10 @@ static void StopRecoveryWorkers(int code, Datum arg) errmsg("parallel redo workers are going to stop, code:%d, arg:%lu", code, DatumGetUInt64(arg)))); SendSingalToPageWorker(SIGTERM); + if (ENABLE_ONDEMAND_REALTIME_BUILD && SS_ONDEMAND_REALTIME_BUILD_NORMAL) { + g_instance.dms_cxt.SSRecoveryInfo.ondemand_realtime_build_status = BUILD_TO_DISABLED; + ereport(LOG, (errmsg("[On-demand] start to shutdown realtime build, set status to BUILD_TO_DISABLED."))); + } uint64 count = 0; while (!DispathCouldExit()) { @@ -1993,8 +1995,6 @@ void WaitRedoFinish() void WaitRealtimeBuildShutdown() { - g_instance.dms_cxt.SSRecoveryInfo.ondemand_realtime_build_status = BUILD_TO_DISABLED; - Assert(g_instance.pid_cxt.StartupPID != 0); SendPostmasterSignal(PMSIGNAL_DMS_TERM_STARTUP); while (true) { diff --git a/src/gausskernel/storage/access/transam/ondemand_extreme_rto/page_redo.cpp b/src/gausskernel/storage/access/transam/ondemand_extreme_rto/page_redo.cpp index 11bd566a3..68040ccf9 100644 --- a/src/gausskernel/storage/access/transam/ondemand_extreme_rto/page_redo.cpp +++ b/src/gausskernel/storage/access/transam/ondemand_extreme_rto/page_redo.cpp @@ -3951,7 +3951,7 @@ void GetOndemandRecoveryStatus(ondemand_recovery_stat *stat) } void RealtimeBuildReleaseRecoveryLatch(int code, Datum arg) { - if (ENABLE_ONDEMAND_REALTIME_BUILD && SS_ONDEMAND_REALTIME_BUILD_SHUTDOWN) { + if (ENABLE_ONDEMAND_REALTIME_BUILD) { volatile Latch* latch = &t_thrd.shemem_ptr_cxt.XLogCtl->recoveryWakeupLatch; if (latch->owner_pid == t_thrd.proc_cxt.MyProcPid && latch->is_shared) { DisownLatch(latch); diff --git a/src/gausskernel/storage/access/transam/ondemand_extreme_rto/redo_utils.cpp b/src/gausskernel/storage/access/transam/ondemand_extreme_rto/redo_utils.cpp index d82009742..18d816a34 100644 --- a/src/gausskernel/storage/access/transam/ondemand_extreme_rto/redo_utils.cpp +++ b/src/gausskernel/storage/access/transam/ondemand_extreme_rto/redo_utils.cpp @@ -514,19 +514,6 @@ void OnDemandWaitRedoFinish() ondemand_extreme_rto::WaitRedoFinish(); } -/** - * Shutdown real-time build when standby node switchover promoting, - * it will wait until StartUp Thread shutdown. - */ -void OnDemandWaitRealtimeBuildShutDownInSwitchoverPromoting() -{ - if (g_instance.pid_cxt.StartupPID != 0) { - Assert(SS_ONDEMAND_REALTIME_BUILD_NORMAL); - OnDemandWaitRealtimeBuildShutDown(); - ereport(LOG, (errmsg("[SS reform] Shutdown real-time build when switchover promoting."))); - } -} - /** * Reform partner shutdown real-time build when failover, * it will wait until Startup Thread shutdown.