!6341 【6.0.0】【资源池化】适配buf_ctrl上面in_rcy标记的清理的回调函数&MES选择不在初始化的时候建立连接

Merge pull request !6341 from 董宁/rcy_clean6.0.0
This commit is contained in:
opengauss_bot
2024-09-19 07:38:46 +00:00
committed by Gitee
3 changed files with 32 additions and 8 deletions

View File

@ -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);
}
@ -2240,6 +2250,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
@ -2308,4 +2331,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;
}

View File

@ -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);

View File

@ -1,3 +1,3 @@
dms_commit_id=6de342c050a9ff2ac5cb5b462a699e46c88bd156
dms_commit_id=402eef8afae247c9592959c77fcf136aac9e2dd9
dss_commit_id=621eb9d6aac34726db404446511be2de9ae32a3f
cbb_commit_id=2ea0e4ea6349f00ca85793480ee1ced952c3c8c7