[共享存储] dw adapt shared_storage

This commit is contained in:
dongning12
2023-01-12 22:17:02 +08:00
parent b5dc67ccdb
commit ded16a65b4
5 changed files with 19 additions and 3 deletions

View File

@ -329,4 +329,5 @@ void ss_failover_dw_init()
ckpt_shutdown_pagewriter();
g_instance.dms_cxt.SSRecoveryInfo.in_flushcopy = false;
ss_failover_dw_init_internal();
g_instance.dms_cxt.dw_init = true;
}

View File

@ -197,6 +197,7 @@ static void knl_g_dms_init(knl_g_dms_context *dms_cxt)
dms_cxt->ckptRedo = InvalidXLogRecPtr;
dms_cxt->resetSyscache = false;
dms_cxt->finishedRecoverOldPrimaryDWFile = false;
dms_cxt->dw_init = false;
}
static void knl_g_tests_init(knl_g_tests_context* tests_cxt)

View File

@ -9678,10 +9678,19 @@ void StartupXLOG(void)
* in SS Switchover, skip dw init since we didn't do ShutdownXLOG
*/
if (!SS_PERFORMING_SWITCHOVER && !SSFAILOVER_TRIGGER && !ENABLE_DMS) {
if ((ENABLE_REFORM && ((SS_REFORM_REFORMER && !SSFAILOVER_TRIGGER && !SS_PRIMARY_DEMOTED) ||
(SS_REFORM_PARTNER && SS_STANDBY_PROMOTING))) ||
!ENABLE_DMS || !ENABLE_REFORM) {
/* process assist file of chunk recycling */
dw_ext_init();
dw_init();
if (ENABLE_DMS) {
g_instance.dms_cxt.dw_init = true;
}
}
if (SS_IN_FAILOVER && SS_REFORM_REFORMER) {
ss_failover_dw_init();
}
/* Recover meta of undo subsystem. */

View File

@ -271,8 +271,12 @@ void dw_ext_init();
*/
inline bool dw_enabled()
{
if (ENABLE_DMS) {
return false;
if (ENABLE_DMS && ENABLE_REFORM) {
if ((SS_STANDBY_PROMOTING && t_thrd.role != STARTUP && !g_instance.dms_cxt.dw_init) ||
(SS_STANDBY_MODE && !SS_STANDBY_PROMOTING) || SS_PRIMARY_DEMOTED ||
(SS_STANDBY_FAILOVER && t_thrd.role != STARTUP && !g_instance.dms_cxt.dw_init)) {
return false;
}
}
return (ENABLE_INCRE_CKPT && g_instance.attr.attr_storage.enable_double_write);
}

View File

@ -1199,6 +1199,7 @@ typedef struct knl_g_dms_context {
XLogRecPtr ckptRedo;
bool resetSyscache;
bool finishedRecoverOldPrimaryDWFile;
bool dw_init;
} knl_g_dms_context;
typedef struct knl_instance_context {