From d42a002b454d15a9a0b5658e6fd416d8b0faeaf9 Mon Sep 17 00:00:00 2001 From: dongning12 Date: Wed, 18 Sep 2024 19:50:08 +0800 Subject: [PATCH] =?UTF-8?q?[=E8=B5=84=E6=BA=90=E6=B1=A0=E5=8C=96]=E9=80=82?= =?UTF-8?q?=E9=85=8Dbuf=5Fctrl=E4=B8=8A=E9=9D=A2in=5Frcy=E6=A0=87=E8=AE=B0?= =?UTF-8?q?=E7=9A=84=E6=B8=85=E7=90=86=E7=9A=84=E5=9B=9E=E8=B0=83=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ddes/adapter/ss_dms_callback.cpp | 36 +++++++++++++++---- src/gausskernel/ddes/adapter/ss_init.cpp | 2 +- src/gausskernel/ddes/ddes_commit_id | 2 +- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp index 6a6c40bdc..d04d5f51b 100644 --- a/src/gausskernel/ddes/adapter/ss_dms_callback.cpp +++ b/src/gausskernel/ddes/adapter/ss_dms_callback.cpp @@ -1451,21 +1451,31 @@ static int32 CBBufRebuildDrcInternal(int begin, int len, unsigned char thread_in */ const int dms_invalid_thread_index = 255; const int dms_invalid_thread_num = 255; -static int32 CBBufRebuildDrcParallel(void* db_handle, unsigned char thread_index, unsigned char thread_num) +static void CBAllocBufRangeForThread(unsigned char thread_index, unsigned char thread_num, + int* buf_begin, int* buf_num) { Assert((thread_index == dms_invalid_thread_index && thread_num == dms_invalid_thread_num) || (thread_index != dms_invalid_thread_index && thread_num != dms_invalid_thread_num && thread_index < thread_num)); - int buf_num = TOTAL_BUFFER_NUM / thread_num; - int buf_begin = thread_index * buf_num; + int num = TOTAL_BUFFER_NUM / thread_num; + int begin = thread_index * num; if (thread_index == thread_num - 1) { - buf_num = TOTAL_BUFFER_NUM - buf_begin; + num = TOTAL_BUFFER_NUM - begin; } if (thread_index == dms_invalid_thread_index && thread_num == dms_invalid_thread_num) { - buf_begin = 0; - buf_num = TOTAL_BUFFER_NUM; + begin = 0; + num = TOTAL_BUFFER_NUM; } + *buf_begin = begin; + *buf_num = num; +} + +static int32 CBBufRebuildDrcParallel(void* db_handle, unsigned char thread_index, unsigned char thread_num) +{ + int buf_begin = 0; + int buf_num = 0; + CBAllocBufRangeForThread(thread_index, thread_num, &buf_begin, &buf_num); return CBBufRebuildDrcInternal(buf_begin, buf_num, thread_index); } @@ -2230,6 +2240,19 @@ int CBDoCheckpointImmediately(unsigned long long *ckpt_lsn) return GS_SUCCESS; } +int CBBufCtrlRcyClean(void *db_handle, unsigned char thread_index, unsigned char thread_num) +{ + int buf_begin = 0; + int buf_num = 0; + CBAllocBufRangeForThread(thread_index, thread_num, &buf_begin, &buf_num); + int buf_end = buf_begin + buf_num - 1; + for (int i = buf_begin; i <= buf_end; i++) { + dms_buf_ctrl_t *buf_ctrl = GetDmsBufCtrl(i); + buf_ctrl->in_rcy = false; + } + return GS_SUCCESS; +} + void DmsInitCallback(dms_callback_t *callback) { // used in reform @@ -2298,4 +2321,5 @@ void DmsInitCallback(dms_callback_t *callback) callback->buf_ctrl_recycle = CBBufCtrlRecycle; callback->dms_thread_deinit = DmsThreadDeinit; callback->opengauss_do_ckpt_immediate = CBDoCheckpointImmediately; + callback->dms_ctl_rcy_clean_parallel = CBBufCtrlRcyClean; } diff --git a/src/gausskernel/ddes/adapter/ss_init.cpp b/src/gausskernel/ddes/adapter/ss_init.cpp index d982ec374..4adb31ee2 100644 --- a/src/gausskernel/ddes/adapter/ss_init.cpp +++ b/src/gausskernel/ddes/adapter/ss_init.cpp @@ -407,7 +407,7 @@ static void setDMSProfile(dms_profile_t* profile) profile->max_session_cnt = DMS_MAX_SESSIONS; profile->time_stat_enabled = TRUE; profile->pipe_type = convertInterconnectType(); - profile->conn_created_during_init = TRUE; + profile->conn_created_during_init = false; setRdmaWorkConfig(profile); setScrlConfig(profile); SetOckLogPath(dms_attr, profile->ock_log_path); diff --git a/src/gausskernel/ddes/ddes_commit_id b/src/gausskernel/ddes/ddes_commit_id index da57c1e16..f4097434f 100644 --- a/src/gausskernel/ddes/ddes_commit_id +++ b/src/gausskernel/ddes/ddes_commit_id @@ -1,3 +1,3 @@ -dms_commit_id=6de342c050a9ff2ac5cb5b462a699e46c88bd156 +dms_commit_id=402eef8afae247c9592959c77fcf136aac9e2dd9 dss_commit_id=621eb9d6aac34726db404446511be2de9ae32a3f cbb_commit_id=2ea0e4ea6349f00ca85793480ee1ced952c3c8c7