Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
大炮V587
oceanbase
提交
ee449433
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,发现更多精彩内容 >>
提交
ee449433
编写于
3月 06, 2023
作者:
O
obdev
提交者:
ob-robot
3月 06, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use error log when cannot create more memtable
上级
ca230208
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
4 deletion
+10
-4
src/storage/tablet/ob_tablet_memtable_mgr.cpp
src/storage/tablet/ob_tablet_memtable_mgr.cpp
+9
-4
src/storage/tablet/ob_tablet_memtable_mgr.h
src/storage/tablet/ob_tablet_memtable_mgr.h
+1
-0
未找到文件。
src/storage/tablet/ob_tablet_memtable_mgr.cpp
浏览文件 @
ee449433
...
...
@@ -36,6 +36,7 @@ ObTabletMemtableMgr::ObTabletMemtableMgr()
:
ObIMemtableMgr
(
LockType
::
OB_SPIN_RWLOCK
,
&
lock_def_
),
ls_
(
NULL
),
lock_def_
(
common
::
ObLatchIds
::
TABLET_MEMTABLE_LOCK
),
retry_times_
(
0
),
schema_recorder_
(),
medium_info_recorder_
()
{
...
...
@@ -71,6 +72,7 @@ void ObTabletMemtableMgr::destroy()
freezer_
=
nullptr
;
schema_recorder_
.
destroy
();
medium_info_recorder_
.
destroy
();
retry_times_
=
0
;
is_inited_
=
false
;
}
...
...
@@ -106,6 +108,7 @@ int ObTabletMemtableMgr::init(const common::ObTabletID &tablet_id,
t3m_
=
t3m
;
table_type_
=
ObITable
::
TableType
::
DATA_MEMTABLE
;
freezer_
=
freezer
;
retry_times_
=
0
;
is_inited_
=
true
;
TRANS_LOG
(
DEBUG
,
"succeeded to init tablet memtable mgr"
,
K
(
ret
),
K
(
ls_id
),
K
(
tablet_id
));
}
...
...
@@ -186,12 +189,13 @@ int ObTabletMemtableMgr::create_memtable(const SCN clog_checkpoint_scn,
ret
=
OB_ENTRY_EXIST
;
}
else
if
(
get_memtable_count_
()
>=
MAX_MEMSTORE_CNT
)
{
ret
=
OB_MINOR_FREEZE_NOT_ALLOW
;
if
(
TC_REACH_TIME_INTERVAL
(
1000
*
1000
))
{
ob_usleep
(
1
*
1000
);
if
((
++
retry_times_
%
(
60
*
1000
))
==
0
)
{
// 1 min
ObTableHandleV2
first_frozen_memtable
;
get_first_frozen_memtable_
(
first_frozen_memtable
);
LOG_
WARN
(
"cannot create more memtable"
,
K
(
ret
),
K
(
ls_id
),
K
(
tablet_id_
),
K
(
MAX_MEMSTORE_CNT
),
K
(
get_memtable_count_
()),
KPC
(
first_frozen_memtable
.
get_table
()));
LOG_
ERROR
(
"cannot create more memtable"
,
K
(
ret
),
K
(
ls_id
),
K
(
tablet_id_
),
K
(
MAX_MEMSTORE_CNT
),
K
(
get_memtable_count_
()),
KPC
(
first_frozen_memtable
.
get_table
()));
}
}
else
if
(
OB_FAIL
(
get_newest_clog_checkpoint_scn
(
new_clog_checkpoint_scn
)))
{
LOG_WARN
(
"failed to get newest clog_checkpoint_scn"
,
K
(
ret
),
K
(
ls_id
),
K
(
tablet_id_
),
K
(
new_clog_checkpoint_scn
));
...
...
@@ -206,6 +210,7 @@ int ObTabletMemtableMgr::create_memtable(const SCN clog_checkpoint_scn,
table_key
.
scn_range_
.
end_scn_
.
set_max
();
memtable
::
ObMemtable
*
memtable
=
NULL
;
ObLSHandle
ls_handle
;
retry_times_
=
0
;
if
(
OB_FAIL
(
t3m_
->
acquire_memtable
(
memtable_handle
)))
{
LOG_WARN
(
"failed to create memtable"
,
K
(
ret
),
K
(
ls_id
),
K
(
tablet_id_
));
...
...
src/storage/tablet/ob_tablet_memtable_mgr.h
浏览文件 @
ee449433
...
...
@@ -145,6 +145,7 @@ private:
private:
ObLS
*
ls_
;
// 8B
common
::
SpinRWLock
lock_def_
;
//8B
int64_t
retry_times_
;
// 8B
ObStorageSchemaRecorder
schema_recorder_
;
// 120B
compaction
::
ObTabletMediumCompactionInfoRecorder
medium_info_recorder_
;
// 96B
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录