Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
大炮V587
oceanbase
提交
570fde52
O
oceanbase
项目概览
大炮V587
/
oceanbase
与 Fork 源项目一致
Fork自
oceanbase / oceanbase
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oceanbase
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
570fde52
编写于
3月 16, 2023
作者:
O
obdev
提交者:
ob-robot
3月 16, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Optimize cpu consumption for arb server.
上级
e5bfe02e
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
13 addition
and
8 deletion
+13
-8
deps/oblib/src/rpc/pnio/io/time_wheel.h
deps/oblib/src/rpc/pnio/io/time_wheel.h
+1
-1
src/logservice/palf/log_define.h
src/logservice/palf/log_define.h
+2
-1
src/logservice/palf/log_io_task_cb_thread_pool.cpp
src/logservice/palf/log_io_task_cb_thread_pool.cpp
+0
-1
src/logservice/palf/log_loop_thread.cpp
src/logservice/palf/log_loop_thread.cpp
+7
-3
src/logservice/palf/log_loop_thread.h
src/logservice/palf/log_loop_thread.h
+2
-1
src/logservice/palf/palf_env_impl.cpp
src/logservice/palf/palf_env_impl.cpp
+1
-1
未找到文件。
deps/oblib/src/rpc/pnio/io/time_wheel.h
浏览文件 @
570fde52
#define TIME_WHEEL_SLOT_NUM (1<<16)
#define TIME_WHEEL_SLOT_INTERVAL
1024
#define TIME_WHEEL_SLOT_INTERVAL
8192
typedef
struct
time_wheel_t
time_wheel_t
;
typedef
void
(
timer_cb_t
)(
time_wheel_t
*
tw
,
dlink_t
*
l
);
typedef
struct
time_wheel_t
{
...
...
src/logservice/palf/log_define.h
浏览文件 @
570fde52
...
...
@@ -93,7 +93,8 @@ const int64_t PALF_LEADER_RECONFIRM_SYNC_TIMEOUT_US = 10 * 1000 * 1000L; //
const
int64_t
PREPARE_LOG_BUFFER_SIZE
=
2048
;
const
int64_t
PALF_LEADER_ACTIVE_SYNC_TIMEOUT_US
=
10
*
1000
*
1000L
;
// 10s
const
int32_t
PALF_MAX_REPLAY_TIMEOUT
=
500
*
1000
;
const
int32_t
PALF_LOG_LOOP_INTERVAL_US
=
1
*
1000
;
// 1ms
const
int32_t
DEFAULT_PALF_LOG_LOOP_INTERVAL_US
=
1
*
1000
;
// 1ms
const
int32_t
PALF_LOG_LOOP_INTERVAL_US_UPPER_BOUND
=
100
*
1000
;
// 100ms
const
int64_t
PALF_SLIDING_WINDOW_SIZE
=
1
<<
11
;
// must be 2^n(n>0), default 2^11 = 2048
const
int64_t
PALF_MAX_LEADER_SUBMIT_LOG_COUNT
=
PALF_SLIDING_WINDOW_SIZE
/
2
;
// max number of concurrent submitting group log in leader
const
int64_t
PALF_RESEND_MSLOG_INTERVAL_US
=
500
*
1000L
;
// 500 ms
...
...
src/logservice/palf/log_io_task_cb_thread_pool.cpp
浏览文件 @
570fde52
...
...
@@ -105,7 +105,6 @@ void LogIOTaskCbThreadPool::destroy()
wait
();
is_inited_
=
false
;
if
(
-
1
!=
tg_id_
)
{
MTL_UNREGISTER_THREAD_DYNAMIC
(
tg_id_
);
TG_DESTROY
(
tg_id_
);
}
tg_id_
=
-
1
;
...
...
src/logservice/palf/log_loop_thread.cpp
浏览文件 @
570fde52
...
...
@@ -22,6 +22,7 @@ namespace palf
{
LogLoopThread
::
LogLoopThread
()
:
palf_env_impl_
(
NULL
),
run_interval_
(
DEFAULT_PALF_LOG_LOOP_INTERVAL_US
),
is_inited_
(
false
)
{
}
...
...
@@ -31,7 +32,7 @@ LogLoopThread::~LogLoopThread()
destroy
();
}
int
LogLoopThread
::
init
(
IPalfEnvImpl
*
palf_env_impl
)
int
LogLoopThread
::
init
(
const
bool
is_normal_mode
,
IPalfEnvImpl
*
palf_env_impl
)
{
int
ret
=
OB_SUCCESS
;
if
(
OB_UNLIKELY
(
is_inited_
))
{
...
...
@@ -43,6 +44,9 @@ int LogLoopThread::init(IPalfEnvImpl *palf_env_impl)
}
else
{
palf_env_impl_
=
palf_env_impl
;
share
::
ObThreadPool
::
set_run_wrapper
(
MTL_CTX
());
if
(
false
==
is_normal_mode
)
{
run_interval_
=
PALF_LOG_LOOP_INTERVAL_US_UPPER_BOUND
;
}
is_inited_
=
true
;
}
...
...
@@ -108,13 +112,13 @@ void LogLoopThread::log_loop_()
}
const
int64_t
round_cost_time
=
ObTimeUtility
::
current_time
()
-
start_ts
;
int32_t
sleep_ts
=
PALF_LOG_LOOP_INTERVAL_US
-
static_cast
<
const
int32_t
>
(
round_cost_time
);
int32_t
sleep_ts
=
run_interval_
-
static_cast
<
const
int32_t
>
(
round_cost_time
);
if
(
sleep_ts
<
0
)
{
sleep_ts
=
0
;
}
ob_usleep
(
sleep_ts
);
if
(
REACH_TIME_INTERVAL
(
5
*
1000
*
1000
))
{
if
(
REACH_T
ENANT_T
IME_INTERVAL
(
5
*
1000
*
1000
))
{
PALF_LOG
(
INFO
,
"LogLoopThread round_cost_time"
,
K
(
round_cost_time
));
}
}
...
...
src/logservice/palf/log_loop_thread.h
浏览文件 @
570fde52
...
...
@@ -27,13 +27,14 @@ public:
LogLoopThread
();
virtual
~
LogLoopThread
();
public:
int
init
(
IPalfEnvImpl
*
palf_env_impl
);
int
init
(
const
bool
is_normal_mode
,
IPalfEnvImpl
*
palf_env_impl
);
void
destroy
();
void
run1
();
private:
void
log_loop_
();
private:
IPalfEnvImpl
*
palf_env_impl_
;
int64_t
run_interval_
;
bool
is_inited_
;
private:
DISALLOW_COPY_AND_ASSIGN
(
LogLoopThread
);
...
...
src/logservice/palf/palf_env_impl.cpp
浏览文件 @
570fde52
...
...
@@ -207,7 +207,7 @@ int PalfEnvImpl::init(
PALF_LOG
(
ERROR
,
"construct log path failed"
,
K
(
ret
),
K
(
pret
));
}
else
if
(
OB_FAIL
(
palf_handle_impl_map_
.
init
(
"LOG_HASH_MAP"
,
tenant_id
)))
{
PALF_LOG
(
ERROR
,
"palf_handle_impl_map_ init failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
log_loop_thread_
.
init
(
this
)))
{
}
else
if
(
OB_FAIL
(
log_loop_thread_
.
init
(
t
rue
,
t
his
)))
{
PALF_LOG
(
ERROR
,
"log_loop_thread_ init failed"
,
K
(
ret
));
}
else
if
(
OB_FAIL
(
election_timer_
.
init_and_start
(
1
,
1
_ms
,
"ElectTimer"
)))
{
// just one worker thread
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录