Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
oceanbase
oceanbase
提交
bca5c691
O
oceanbase
项目概览
oceanbase
/
oceanbase
2 年多 前同步成功
通知
262
Star
6084
Fork
1301
代码
文件
提交
分支
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看板
提交
bca5c691
编写于
11月 12, 2025
作者:
H
HoniiTro19
提交者:
ob-robot
11月 12, 2025
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
opt check lock for inc major sstable
上级
5045e913
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
3 addition
and
2 deletion
+3
-2
src/storage/blocksstable/ob_sstable.cpp
src/storage/blocksstable/ob_sstable.cpp
+3
-2
未找到文件。
src/storage/blocksstable/ob_sstable.cpp
浏览文件 @
bca5c691
...
...
@@ -850,6 +850,7 @@ int ObSSTable::check_rows_locked(
ObSSTableRowLockMultiChecker
*
multi_checker
=
nullptr
;
bool
can_access
=
true
;
bool
may_exist
=
true
;
const
bool
is_inc_major_or_major
=
is_inc_major_related_sstable
()
||
is_major_sstable
();
const
share
::
SCN
snapshot_version
=
context
.
store_ctx_
->
mvcc_acc_ctx_
.
get_snapshot_version
();
if
(
OB_UNLIKELY
(
rows_info
.
all_rows_found
()))
{
ret
=
OB_ERR_UNEXPECTED
;
...
...
@@ -860,7 +861,7 @@ int ObSSTable::check_rows_locked(
}
else
if
(
need_check_inc_major_can_access
()
&&
OB_FAIL
(
compaction
::
ObIncMajorTxHelper
::
check_can_access
(
context
,
*
this
,
can_access
)))
{
LOG_WARN
(
"fail to check can access"
,
K
(
ret
),
K
(
context
),
K
(
*
this
));
}
else
if
(
no_data_to_read
()
||
!
can_access
||
(
is_
major_sstable
()
&&
!
check_exist
))
{
}
else
if
(
no_data_to_read
()
||
!
can_access
||
(
is_
inc_major_or_major
&&
!
check_exist
))
{
}
else
if
(
!
check_exist
&&
get_upper_trans_version
()
<=
snapshot_version
.
get_val_for_tx
())
{
if
(
max_trans_version
.
get_val_for_tx
()
<
get_upper_trans_version
())
{
if
(
OB_FAIL
(
max_trans_version
.
convert_for_tx
(
get_upper_trans_version
())))
{
...
...
@@ -878,7 +879,7 @@ int ObSSTable::check_rows_locked(
LOG_WARN
(
"Failed to check min rowkey boundary"
,
K
(
ret
),
KPC
(
sstable_endkey
),
K
(
rows_info
));
}
else
if
(
may_exist
)
{
// TODO(hanling): Do we need to optimize for the mini/minor sstable which does not have uncommitted row?
if
(
is_
major_sstable
()
)
{
if
(
is_
inc_major_or_major
)
{
rows_info
.
set_all_rows_lock_checked
(
check_exist
);
}
if
(
OB_FAIL
(
rows_info
.
refine_rowkeys
()))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录