diff --git a/src/gausskernel/ddes/adapter/ss_dms.cpp b/src/gausskernel/ddes/adapter/ss_dms.cpp index 392a346aa2eef8ce42e2ead6fa91690ed1fd9a59..2dfdb8750a9c677bbc44ba65685bfe758cf7c7ee 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 23c98cb14bef46064d06541015362dd95be4828b..aa0f7900688cb34acc78b21b80db854fe7ad60f3 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 61efad15d9274295a3003a72832fff08bf8a3e0b..3a1d3363d875aa27ade0b8a3d547f966abdb7ab8 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);