Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
f505993d
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f505993d
编写于
7月 10, 2023
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: catalog append subtask issue
上级
8ca0dbd2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
29 addition
and
12 deletion
+29
-12
source/libs/catalog/inc/catalogInt.h
source/libs/catalog/inc/catalogInt.h
+1
-1
source/libs/catalog/src/ctgAsync.c
source/libs/catalog/src/ctgAsync.c
+28
-11
未找到文件。
source/libs/catalog/inc/catalogInt.h
浏览文件 @
f505993d
...
@@ -938,7 +938,7 @@ int32_t ctgInitJob(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob** job, const
...
@@ -938,7 +938,7 @@ int32_t ctgInitJob(SCatalog* pCtg, SRequestConnInfo* pConn, SCtgJob** job, const
void
*
param
);
void
*
param
);
int32_t
ctgLaunchJob
(
SCtgJob
*
pJob
);
int32_t
ctgLaunchJob
(
SCtgJob
*
pJob
);
int32_t
ctgMakeAsyncRes
(
SCtgJob
*
pJob
);
int32_t
ctgMakeAsyncRes
(
SCtgJob
*
pJob
);
int32_t
ctgLaunchSubTask
(
SCtgTask
*
pTask
,
CTG_TASK_TYPE
type
,
ctgSubTaskCbFp
fp
,
void
*
param
);
int32_t
ctgLaunchSubTask
(
SCtgTask
*
*
p
pTask
,
CTG_TASK_TYPE
type
,
ctgSubTaskCbFp
fp
,
void
*
param
);
int32_t
ctgGetTbCfgCb
(
SCtgTask
*
pTask
);
int32_t
ctgGetTbCfgCb
(
SCtgTask
*
pTask
);
void
ctgFreeHandle
(
SCatalog
*
pCatalog
);
void
ctgFreeHandle
(
SCatalog
*
pCatalog
);
...
...
source/libs/catalog/src/ctgAsync.c
浏览文件 @
f505993d
...
@@ -2097,7 +2097,7 @@ int32_t ctgLaunchGetTbCfgTask(SCtgTask* pTask) {
...
@@ -2097,7 +2097,7 @@ int32_t ctgLaunchGetTbCfgTask(SCtgTask* pTask) {
SCtgTbMetaParam
param
;
SCtgTbMetaParam
param
;
param
.
pName
=
pCtx
->
pName
;
param
.
pName
=
pCtx
->
pName
;
param
.
flag
=
0
;
param
.
flag
=
0
;
CTG_ERR_JRET
(
ctgLaunchSubTask
(
pTask
,
CTG_TASK_GET_TB_META
,
ctgGetTbCfgCb
,
&
param
));
CTG_ERR_JRET
(
ctgLaunchSubTask
(
&
pTask
,
CTG_TASK_GET_TB_META
,
ctgGetTbCfgCb
,
&
param
));
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
}
}
...
@@ -2108,7 +2108,7 @@ int32_t ctgLaunchGetTbCfgTask(SCtgTask* pTask) {
...
@@ -2108,7 +2108,7 @@ int32_t ctgLaunchGetTbCfgTask(SCtgTask* pTask) {
if
(
NULL
==
pCtx
->
pVgInfo
)
{
if
(
NULL
==
pCtx
->
pVgInfo
)
{
CTG_ERR_JRET
(
ctgGetTbHashVgroupFromCache
(
pCtg
,
pCtx
->
pName
,
&
pCtx
->
pVgInfo
));
CTG_ERR_JRET
(
ctgGetTbHashVgroupFromCache
(
pCtg
,
pCtx
->
pName
,
&
pCtx
->
pVgInfo
));
if
(
NULL
==
pCtx
->
pVgInfo
)
{
if
(
NULL
==
pCtx
->
pVgInfo
)
{
CTG_ERR_JRET
(
ctgLaunchSubTask
(
pTask
,
CTG_TASK_GET_DB_VGROUP
,
ctgGetTbCfgCb
,
dbFName
));
CTG_ERR_JRET
(
ctgLaunchSubTask
(
&
pTask
,
CTG_TASK_GET_DB_VGROUP
,
ctgGetTbCfgCb
,
dbFName
));
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
}
}
...
@@ -2145,7 +2145,7 @@ int32_t ctgLaunchGetTbTagTask(SCtgTask* pTask) {
...
@@ -2145,7 +2145,7 @@ int32_t ctgLaunchGetTbTagTask(SCtgTask* pTask) {
if
(
NULL
==
pCtx
->
pVgInfo
)
{
if
(
NULL
==
pCtx
->
pVgInfo
)
{
CTG_ERR_JRET
(
ctgGetTbHashVgroupFromCache
(
pCtg
,
pCtx
->
pName
,
&
pCtx
->
pVgInfo
));
CTG_ERR_JRET
(
ctgGetTbHashVgroupFromCache
(
pCtg
,
pCtx
->
pName
,
&
pCtx
->
pVgInfo
));
if
(
NULL
==
pCtx
->
pVgInfo
)
{
if
(
NULL
==
pCtx
->
pVgInfo
)
{
CTG_ERR_JRET
(
ctgLaunchSubTask
(
pTask
,
CTG_TASK_GET_DB_VGROUP
,
ctgGetTbTagCb
,
dbFName
));
CTG_ERR_JRET
(
ctgLaunchSubTask
(
&
pTask
,
CTG_TASK_GET_DB_VGROUP
,
ctgGetTbTagCb
,
dbFName
));
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
}
}
...
@@ -2331,7 +2331,7 @@ int32_t ctgLaunchGetUserTask(SCtgTask* pTask) {
...
@@ -2331,7 +2331,7 @@ int32_t ctgLaunchGetUserTask(SCtgTask* pTask) {
SCtgTbMetaParam
param
;
SCtgTbMetaParam
param
;
param
.
pName
=
&
pCtx
->
user
.
tbName
;
param
.
pName
=
&
pCtx
->
user
.
tbName
;
param
.
flag
=
CTG_FLAG_SYNC_OP
;
param
.
flag
=
CTG_FLAG_SYNC_OP
;
CTG_ERR_RET
(
ctgLaunchSubTask
(
pTask
,
CTG_TASK_GET_TB_META
,
ctgGetUserCb
,
&
param
));
CTG_ERR_RET
(
ctgLaunchSubTask
(
&
pTask
,
CTG_TASK_GET_TB_META
,
ctgGetUserCb
,
&
param
));
}
else
{
}
else
{
CTG_ERR_RET
(
ctgGetUserDbAuthFromMnode
(
pCtg
,
pConn
,
pCtx
->
user
.
user
,
NULL
,
pTask
));
CTG_ERR_RET
(
ctgGetUserDbAuthFromMnode
(
pCtg
,
pConn
,
pCtx
->
user
.
user
,
NULL
,
pTask
));
}
}
...
@@ -2541,19 +2541,35 @@ _return:
...
@@ -2541,19 +2541,35 @@ _return:
CTG_RET
(
code
);
CTG_RET
(
code
);
}
}
int32_t
ctgLaunchSubTask
(
SCtgTask
*
pTask
,
CTG_TASK_TYPE
type
,
ctgSubTaskCbFp
fp
,
void
*
param
)
{
SCtgTask
*
ctgGetTask
(
SCtgJob
*
pJob
,
int32_t
taskId
)
{
SCtgJob
*
pJob
=
pTask
->
pJob
;
int32_t
taskNum
=
taosArrayGetSize
(
pJob
->
pTasks
);
for
(
int32_t
i
=
0
;
i
<
taskNum
;
++
i
)
{
SCtgTask
*
pTask
=
taosArrayGet
(
pJob
->
pTasks
,
i
);
if
(
pTask
->
taskId
==
taskId
)
{
return
pTask
;
}
}
return
NULL
;
}
int32_t
ctgLaunchSubTask
(
SCtgTask
**
ppTask
,
CTG_TASK_TYPE
type
,
ctgSubTaskCbFp
fp
,
void
*
param
)
{
SCtgJob
*
pJob
=
(
*
ppTask
)
->
pJob
;
int32_t
subTaskId
=
-
1
;
int32_t
subTaskId
=
-
1
;
bool
newTask
=
false
;
bool
newTask
=
false
;
int32_t
taskId
=
(
*
ppTask
)
->
taskId
;
ctgClearSubTaskRes
(
&
pTask
->
subRes
);
ctgClearSubTaskRes
(
&
(
*
ppTask
)
->
subRes
);
pTask
->
subRes
.
type
=
type
;
(
*
ppTask
)
->
subRes
.
type
=
type
;
pTask
->
subRes
.
fp
=
fp
;
(
*
ppTask
)
->
subRes
.
fp
=
fp
;
CTG_ERR_RET
(
ctgSearchExistingTask
(
pJob
,
type
,
param
,
&
subTaskId
));
CTG_ERR_RET
(
ctgSearchExistingTask
(
pJob
,
type
,
param
,
&
subTaskId
));
if
(
subTaskId
<
0
)
{
if
(
subTaskId
<
0
)
{
CTG_ERR_RET
(
ctgInitTask
(
pJob
,
type
,
param
,
&
subTaskId
));
CTG_ERR_RET
(
ctgInitTask
(
pJob
,
type
,
param
,
&
subTaskId
));
newTask
=
true
;
newTask
=
true
;
*
ppTask
=
ctgGetTask
(
pJob
,
taskId
);
}
}
SCtgTask
*
pSub
=
taosArrayGet
(
pJob
->
pTasks
,
subTaskId
);
SCtgTask
*
pSub
=
taosArrayGet
(
pJob
->
pTasks
,
subTaskId
);
...
@@ -2561,10 +2577,10 @@ int32_t ctgLaunchSubTask(SCtgTask* pTask, CTG_TASK_TYPE type, ctgSubTaskCbFp fp,
...
@@ -2561,10 +2577,10 @@ int32_t ctgLaunchSubTask(SCtgTask* pTask, CTG_TASK_TYPE type, ctgSubTaskCbFp fp,
pSub
->
subTask
=
true
;
pSub
->
subTask
=
true
;
}
}
CTG_ERR_RET
(
ctgSetSubTaskCb
(
pSub
,
pTask
));
CTG_ERR_RET
(
ctgSetSubTaskCb
(
pSub
,
*
p
pTask
));
if
(
newTask
)
{
if
(
newTask
)
{
SCtgMsgCtx
*
pMsgCtx
=
CTG_GET_TASK_MSGCTX
(
pTask
,
-
1
);
SCtgMsgCtx
*
pMsgCtx
=
CTG_GET_TASK_MSGCTX
(
*
p
pTask
,
-
1
);
SCtgMsgCtx
*
pSubMsgCtx
=
CTG_GET_TASK_MSGCTX
(
pSub
,
-
1
);
SCtgMsgCtx
*
pSubMsgCtx
=
CTG_GET_TASK_MSGCTX
(
pSub
,
-
1
);
pSubMsgCtx
->
pBatchs
=
pMsgCtx
->
pBatchs
;
pSubMsgCtx
->
pBatchs
=
pMsgCtx
->
pBatchs
;
...
@@ -2584,6 +2600,7 @@ int32_t ctgLaunchJob(SCtgJob* pJob) {
...
@@ -2584,6 +2600,7 @@ int32_t ctgLaunchJob(SCtgJob* pJob) {
qDebug
(
"QID:0x%"
PRIx64
" ctg launch [%dth] task"
,
pJob
->
queryId
,
pTask
->
taskId
);
qDebug
(
"QID:0x%"
PRIx64
" ctg launch [%dth] task"
,
pJob
->
queryId
,
pTask
->
taskId
);
CTG_ERR_RET
((
*
gCtgAsyncFps
[
pTask
->
type
].
launchFp
)(
pTask
));
CTG_ERR_RET
((
*
gCtgAsyncFps
[
pTask
->
type
].
launchFp
)(
pTask
));
pTask
=
taosArrayGet
(
pJob
->
pTasks
,
i
);
pTask
->
status
=
CTG_TASK_LAUNCHED
;
pTask
->
status
=
CTG_TASK_LAUNCHED
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录