Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
邱崇源
oceanbase
提交
9ca3f5de
O
oceanbase
项目概览
邱崇源
/
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,体验更适合开发者的 AI 搜索 >>
提交
9ca3f5de
编写于
2月 15, 2023
作者:
O
obdev
提交者:
ob-robot
2月 15, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[CP] [DeadLock] clear conflict tx info in desc when fetch finished
上级
1e7414d5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
14 addition
and
3 deletion
+14
-3
src/storage/tx/ob_trans_deadlock_adapter.cpp
src/storage/tx/ob_trans_deadlock_adapter.cpp
+1
-1
src/storage/tx/ob_trans_define_v4.cpp
src/storage/tx/ob_trans_define_v4.cpp
+12
-0
src/storage/tx/ob_trans_define_v4.h
src/storage/tx/ob_trans_define_v4.h
+1
-2
未找到文件。
src/storage/tx/ob_trans_deadlock_adapter.cpp
浏览文件 @
9ca3f5de
...
...
@@ -626,7 +626,7 @@ int ObTransDeadlockDetectorAdapter::maintain_deadlock_info_when_end_stmt(sql::Ob
}
else
if
(
is_rollback
)
{
// statment is failed, maybe will try again, check if need register to deadlock detector
if
(
session
->
get_query_timeout_ts
()
<
ObClockGenerator
::
getCurrentTime
())
{
DETECT_LOG
(
INFO
,
"query timeout, no need register to deadlock"
,
KR
(
ret
),
K
(
desc
->
tid
()));
}
else
if
(
OB_FAIL
(
desc
->
get
_conflict_txs
(
conflict_txs
)))
{
}
else
if
(
OB_FAIL
(
desc
->
fetch
_conflict_txs
(
conflict_txs
)))
{
DETECT_LOG
(
WARN
,
"fail to get conflict txs from desc"
,
KR
(
ret
),
K
(
desc
->
tid
()));
}
else
if
(
conflict_txs
.
empty
())
{
// no row conflicted, no need register to deadlock
...
...
src/storage/tx/ob_trans_define_v4.cpp
浏览文件 @
9ca3f5de
...
...
@@ -567,6 +567,7 @@ int ObTxDesc::get_inc_exec_info(ObTxExecResult &exec_info)
exec_info_reap_ts_
+=
1
;
}
(
void
)
exec_info
.
merge_cflict_txs
(
cflict_txs_
);
cflict_txs_
.
reset
();
DETECT_LOG
(
TRACE
,
"merge conflict txs to exec result"
,
K
(
cflict_txs_
),
K
(
exec_info
));
return
ret
;
}
...
...
@@ -732,6 +733,17 @@ void ObTxDesc::release_implicit_savepoint(const int64_t savepoint)
}
}
int
ObTxDesc
::
fetch_conflict_txs
(
ObIArray
<
ObTransIDAndAddr
>
&
array
)
{
int
ret
=
OB_SUCCESS
;
ObSpinLockGuard
guard
(
lock_
);
if
(
OB_FAIL
(
array
.
assign
(
cflict_txs_
)))
{
DETECT_LOG
(
WARN
,
"fail to fetch conflict txs"
,
K
(
ret
),
K
(
cflict_txs_
));
}
cflict_txs_
.
reset
();
return
ret
;
}
int
ObTxDesc
::
merge_conflict_txs
(
const
ObIArray
<
ObTransIDAndAddr
>
&
conflict_txs
)
{
ObSpinLockGuard
guard
(
lock_
);
...
...
src/storage/tx/ob_trans_define_v4.h
浏览文件 @
9ca3f5de
...
...
@@ -478,8 +478,7 @@ public:
K
(
commit_task_
.
is_registered
()),
K_
(
ref
));
int
get_conflict_txs
(
ObIArray
<
ObTransIDAndAddr
>
&
array
)
{
ObSpinLockGuard
guard
(
lock_
);
return
array
.
assign
(
cflict_txs_
);
}
int
fetch_conflict_txs
(
ObIArray
<
ObTransIDAndAddr
>
&
array
);
void
reset_conflict_txs
()
{
ObSpinLockGuard
guard
(
lock_
);
cflict_txs_
.
reset
();
}
int
merge_conflict_txs
(
const
ObIArray
<
ObTransIDAndAddr
>
&
conflict_ids
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录