From 7e6feefb35f48f41fe0e25e4e066ebe525e05b05 Mon Sep 17 00:00:00 2001 From: dongning12 Date: Mon, 12 Jun 2023 15:23:33 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E8=B5=84=E6=BA=90=E6=B1=A0=E5=8C=96?= =?UTF-8?q?=E3=80=91=E5=90=8C=E6=AD=A5dms=5Fbuf=5Fres=5Frebuild=5Fdrc=5Fpa?= =?UTF-8?q?rallel=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/ddes/adapter/ss_dms.cpp | 4 ++-- src/gausskernel/ddes/adapter/ss_dms_callback.cpp | 3 ++- src/include/ddes/dms/ss_dms.h | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/gausskernel/ddes/adapter/ss_dms.cpp b/src/gausskernel/ddes/adapter/ss_dms.cpp index 392a346aa2..2dfdb8750a 100644 --- a/src/gausskernel/ddes/adapter/ss_dms.cpp +++ b/src/gausskernel/ddes/adapter/ss_dms.cpp @@ -269,9 +269,9 @@ int dms_buf_res_rebuild_drc(dms_context_t *dms_ctx, dms_buf_ctrl_t *ctrl, unsign } int dms_buf_res_rebuild_drc_parallel(dms_context_t *dms_ctx, dms_ctrl_info_t *ctrl_info, unsigned char thread_index, - unsigned char for_rebuild) + unsigned char for_rebuild, unsigned char can_release, unsigned char *release) { - return g_ss_dms_func.dms_buf_res_rebuild_drc_parallel(dms_ctx, ctrl_info, thread_index, for_rebuild); + return g_ss_dms_func.dms_buf_res_rebuild_drc_parallel(dms_ctx, ctrl_info, thread_index, for_rebuild, can_release, release); } int dms_is_recovery_session(unsigned int sid) diff --git a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp index 23c98cb14b..aa0f790068 100644 --- a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp +++ b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp @@ -1097,7 +1097,8 @@ static int32 SSRebuildBuf(BufferDesc *buf_desc, unsigned char thread_index) ctrl_info.ctrl = *buf_ctrl; ctrl_info.lsn = (unsigned long long)BufferGetLSN(buf_desc); ctrl_info.is_dirty = (buf_desc->state & (BM_DIRTY | BM_JUST_DIRTIED)) > 0 ? true : false; - int ret = dms_buf_res_rebuild_drc_parallel(&dms_ctx, &ctrl_info, thread_index, true); + unsigned char release = false; // not used in openGauss, just adapt interface + int ret = dms_buf_res_rebuild_drc_parallel(&dms_ctx, &ctrl_info, thread_index, true, false, &release); if (ret != DMS_SUCCESS) { ereport(WARNING, (errmsg("Failed to rebuild page, rel:%u/%u/%u/%d, forknum:%d, blocknum:%u.", buf_desc->tag.rnode.spcNode, buf_desc->tag.rnode.dbNode, buf_desc->tag.rnode.relNode, diff --git a/src/include/ddes/dms/ss_dms.h b/src/include/ddes/dms/ss_dms.h index 61efad15d9..3a1d3363d8 100644 --- a/src/include/ddes/dms/ss_dms.h +++ b/src/include/ddes/dms/ss_dms.h @@ -58,7 +58,7 @@ typedef struct st_ss_dms_func { int (*dms_buf_res_rebuild_drc)(dms_context_t *dms_ctx, dms_buf_ctrl_t *ctrl, unsigned long long lsn, unsigned char is_dirty); int (*dms_buf_res_rebuild_drc_parallel)(dms_context_t *dms_ctx, dms_ctrl_info_t *ctrl_info, unsigned char thread_index, - unsigned char for_rebuild); + unsigned char for_rebuild, unsigned char can_release, unsigned char *release); int (*dms_is_recovery_session)(unsigned int sid); int (*drc_get_page_master_id)(char pageid[DMS_PAGEID_SIZE], unsigned char *master_id); int (*dms_register_ssl_decrypt_pwd)(dms_decrypt_pwd_t cb_func); @@ -105,7 +105,7 @@ void dms_get_event(dms_wait_event_t event_type, unsigned long long *event_cnt, u int dms_buf_res_rebuild_drc(dms_context_t *dms_ctx, dms_buf_ctrl_t *ctrl, unsigned long long lsn, unsigned char is_dirty); int dms_buf_res_rebuild_drc_parallel(dms_context_t *dms_ctx, dms_ctrl_info_t *ctrl_info, unsigned char thread_index, - unsigned char for_rebuild); + unsigned char for_rebuild, unsigned char can_release, unsigned char *release); int dms_is_recovery_session(unsigned int sid); int drc_get_page_master_id(char pageid[DMS_PAGEID_SIZE], unsigned char *master_id); int dms_register_ssl_decrypt_pwd(dms_decrypt_pwd_t cb_func); -- Gitee