Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
知世而放
oceanbase
提交
a2b6f41e
O
oceanbase
项目概览
知世而放
/
oceanbase
与 Fork 源项目一致
Fork自
oceanbase / oceanbase
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oceanbase
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a2b6f41e
编写于
4月 06, 2022
作者:
X
xs0
提交者:
LINGuanRen
4月 06, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
alloc trans rpc task by rp_alloc
上级
68cd5587
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
2 addition
and
102 deletion
+2
-102
deps/oblib/src/lib/allocator/ob_mod_define.h
deps/oblib/src/lib/allocator/ob_mod_define.h
+1
-1
src/storage/transaction/ob_trans_factory.cpp
src/storage/transaction/ob_trans_factory.cpp
+1
-33
src/storage/transaction/ob_trans_factory.h
src/storage/transaction/ob_trans_factory.h
+0
-68
未找到文件。
deps/oblib/src/lib/allocator/ob_mod_define.h
浏览文件 @
a2b6f41e
...
...
@@ -1060,7 +1060,7 @@ LABEL_ITEM_DEF(OB_TRANS_FREEZE_TASK, TransFreezeTask)
LABEL_ITEM_DEF
(
OB_TRANS_SCHE_CTX
,
TransScheCtx
)
LABEL_ITEM_DEF
(
OB_TRANS_COORD_CTX
,
TransCoordCtx
)
LABEL_ITEM_DEF
(
OB_TRANS_PART_CTX
,
TransPartCtx
)
LABEL_ITEM_DEF
(
OB_TRANS_
LOCAL_TASK
,
TransLocal
Task
)
LABEL_ITEM_DEF
(
OB_TRANS_
RPC_TASK
,
TransRpc
Task
)
LABEL_ITEM_DEF
(
OB_TRANS_WAIT_TASK
,
TransWaitTask
)
LABEL_ITEM_DEF
(
OB_TRANS_TENANT_WAIT_QUEUE
,
TranTenaWaitQue
)
LABEL_ITEM_DEF
(
OB_GTS_TASK
,
GtsTask
)
...
...
src/storage/transaction/ob_trans_factory.cpp
浏览文件 @
a2b6f41e
...
...
@@ -48,8 +48,6 @@ int64_t ObPartitionTransCtxMgrFactory::alloc_count_ = 0;
int64_t
ObPartitionTransCtxMgrFactory
::
release_count_
=
0
;
const
char
*
ObPartitionTransCtxMgrFactory
::
mod_type_
=
"OB_PARTITION_TRANS_CTX_MGR"
;
static
TransObjFactory
<
TransRpcTask
>
trans_rpc_task_factory
(
"OB_TRANS_RPC_TASK"
);
#define OB_FREE(object, ...) ob_free(object)
#define RP_FREE(object, LABEL) rp_free(object, LABEL)
#define OB_ALLOC(object, LABEL) object##alloc()
...
...
@@ -258,42 +256,12 @@ const char* ObPartitionTransCtxMgrFactory::get_mod_type()
return
mod_type_
;
}
// TransRpcTaskFactory
TransRpcTask
*
TransRpcTaskFactory
::
alloc
()
{
return
trans_rpc_task_factory
.
alloc
();
}
void
TransRpcTaskFactory
::
release
(
TransRpcTask
*
task
)
{
if
(
OB_ISNULL
(
task
))
{
TRANS_LOG
(
ERROR
,
"TransRpcTask pointer is null when released"
,
KP
(
task
));
}
else
{
trans_rpc_task_factory
.
release
(
task
);
task
=
NULL
;
}
}
int64_t
TransRpcTaskFactory
::
get_alloc_count
()
{
return
trans_rpc_task_factory
.
get_alloc_count
();
}
int64_t
TransRpcTaskFactory
::
get_release_count
()
{
return
trans_rpc_task_factory
.
get_release_count
();
}
const
char
*
TransRpcTaskFactory
::
get_mod_type
()
{
return
trans_rpc_task_factory
.
get_mod_type
();
}
MAKE_OB_ALLOC
(
ObDupTablePartitionMgr
,
OB_DUP_TABLE_PARTITION_MGR
)
MAKE_OB_ALLOC
(
ObGtsRpcProxy
,
OB_GTS_RPC_PROXY
)
MAKE_OB_ALLOC
(
ObGtsRequestRpc
,
OB_GTS_REQUEST_RPC
)
MAKE_FACTORY_CLASS_IMPLEMENT_USE_RP_ALLOC
(
ClogBuf
,
OB_TRANS_CLOG_BUF
)
MAKE_FACTORY_CLASS_IMPLEMENT_USE_RP_ALLOC
(
TransRpcTask
,
OB_TRANS_RPC_TASK
)
MAKE_FACTORY_CLASS_IMPLEMENT_USE_RP_ALLOC
(
MutatorBuf
,
OB_TRANS_MUTATOR_BUF
)
MAKE_FACTORY_CLASS_IMPLEMENT_USE_RP_ALLOC
(
SubmitLogTask
,
OB_TRANS_SUBMIT_LOG_TASK
)
MAKE_FACTORY_CLASS_IMPLEMENT_USE_RP_ALLOC
(
AllocLogIdTask
,
OB_TRANS_ALLOC_LOG_ID_TASK
)
...
...
src/storage/transaction/ob_trans_factory.h
浏览文件 @
a2b6f41e
...
...
@@ -74,74 +74,6 @@ private:
static
int64_t
total_release_part_ctx_count_
;
};
template
<
typename
T
,
int64_t
STATISTIC_INTERVAL
=
TRANS_MEM_STAT_INTERVAL
>
class
TransObjFactory
{
public:
explicit
TransObjFactory
(
const
char
*
mod_type
)
:
alloc_count_
(
0
),
release_count_
(
0
)
{
(
void
)
snprintf
(
mod_type_
,
sizeof
(
mod_type_
)
-
1
,
"%s"
,
mod_type
);
}
~
TransObjFactory
()
{}
T
*
alloc
();
void
release
(
T
*
obj
);
int64_t
get_alloc_count
()
{
return
alloc_count_
;
}
int64_t
get_release_count
()
{
return
release_count_
;
}
char
*
get_mod_type
()
{
return
mod_type_
;
}
private:
static
const
int64_t
MOD_TYPE_SIZE
=
64
;
char
mod_type_
[
MOD_TYPE_SIZE
];
int64_t
alloc_count_
;
int64_t
release_count_
;
};
template
<
typename
T
,
int64_t
STATISTIC_INTERVAL
>
T
*
TransObjFactory
<
T
,
STATISTIC_INTERVAL
>::
alloc
()
{
T
*
task
=
NULL
;
if
(
REACH_TIME_INTERVAL
(
STATISTIC_INTERVAL
))
{
TRANS_LOG
(
INFO
,
"transaction memory statistics"
,
"mod_type"
,
mod_type_
,
K_
(
alloc_count
),
K_
(
release_count
),
"used"
,
alloc_count_
-
release_count_
);
}
if
(
NULL
==
(
task
=
op_reclaim_alloc
(
T
)))
{
TRANS_LOG
(
WARN
,
"obj alloc fail"
,
KP
(
task
));
}
else
{
(
void
)
ATOMIC_FAA
(
&
alloc_count_
,
1
);
}
return
task
;
}
template
<
typename
T
,
int64_t
STATISTIC_INTERVAL
>
void
TransObjFactory
<
T
,
STATISTIC_INTERVAL
>::
release
(
T
*
obj
)
{
if
(
NULL
==
obj
)
{
TRANS_LOG
(
ERROR
,
"task which should be released is null"
);
}
else
{
op_reclaim_free
(
obj
);
obj
=
NULL
;
(
void
)
ATOMIC_FAA
(
&
release_count_
,
1
);
}
}
#define MAKE_FACTORY_CLASS_DEFINE_(object_name, object_name2) \
class object_name##Factory { \
public: \
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录