Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
32f9bc0d
T
TDengine
项目概览
taosdata
/
TDengine
12 个月 前同步成功
通知
1180
Star
22014
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
32f9bc0d
编写于
8月 11, 2022
作者:
wmmhello
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
opti:logic for get table list
上级
4f03e2e4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
71 addition
and
1 deletion
+71
-1
source/dnode/vnode/inc/vnode.h
source/dnode/vnode/inc/vnode.h
+1
-0
source/dnode/vnode/src/meta/metaQuery.c
source/dnode/vnode/src/meta/metaQuery.c
+52
-0
source/libs/executor/src/executil.c
source/libs/executor/src/executil.c
+18
-1
未找到文件。
source/dnode/vnode/inc/vnode.h
浏览文件 @
32f9bc0d
...
...
@@ -91,6 +91,7 @@ typedef struct SMetaEntry SMetaEntry;
void
metaReaderInit
(
SMetaReader
*
pReader
,
SMeta
*
pMeta
,
int32_t
flags
);
void
metaReaderClear
(
SMetaReader
*
pReader
);
int32_t
metaGetTableEntryByUid
(
SMetaReader
*
pReader
,
tb_uid_t
uid
);
//int32_t metaGetTableEntryByUidTest(void *pReader, SArray *uidList);
int32_t
metaReadNext
(
SMetaReader
*
pReader
);
const
void
*
metaGetTableTagVal
(
SMetaEntry
*
pEntry
,
int16_t
type
,
STagVal
*
tagVal
);
int
metaGetTableNameByUid
(
void
*
meta
,
uint64_t
uid
,
char
*
tbName
);
...
...
source/dnode/vnode/src/meta/metaQuery.c
浏览文件 @
32f9bc0d
...
...
@@ -53,6 +53,58 @@ _err:
return
-
1
;
}
int
metaGetTableEntryByUidTest
(
void
*
meta
,
SArray
*
uidList
)
{
SArray
*
readerList
=
taosArrayInit
(
taosArrayGetSize
(
uidList
),
sizeof
(
SMetaReader
));
SArray
*
uidVersion
=
taosArrayInit
(
taosArrayGetSize
(
uidList
),
sizeof
(
STbDbKey
));
SMeta
*
pMeta
=
meta
;
int64_t
version
;
int64_t
stt1
=
taosGetTimestampUs
();
for
(
int
i
=
0
;
i
<
taosArrayGetSize
(
uidList
);
i
++
)
{
void
*
ppVal
=
NULL
;
int
vlen
=
0
;
uint64_t
*
uid
=
taosArrayGet
(
uidList
,
i
);
// query uid.idx
if
(
tdbTbGet
(
pMeta
->
pUidIdx
,
uid
,
sizeof
(
*
uid
),
&
ppVal
,
&
vlen
)
<
0
)
{
continue
;
}
version
=
*
(
int64_t
*
)
ppVal
;
STbDbKey
tbDbKey
=
{.
version
=
version
,
.
uid
=
*
uid
};
taosArrayPush
(
uidVersion
,
&
tbDbKey
);
}
int64_t
stt2
=
taosGetTimestampUs
();
qDebug
(
"metaGetTableEntryByUidTest1 rows:%d, cost:%ld us"
,
taosArrayGetSize
(
uidList
),
stt2
-
stt1
);
for
(
int
i
=
0
;
i
<
taosArrayGetSize
(
uidVersion
);
i
++
)
{
SMetaReader
pReader
=
{
0
};
STbDbKey
*
tbDbKey
=
taosArrayGet
(
uidVersion
,
i
);
// query table.db
if
(
tdbTbGet
(
pMeta
->
pTbDb
,
tbDbKey
,
sizeof
(
STbDbKey
),
&
pReader
.
pBuf
,
&
pReader
.
szBuf
)
<
0
)
{
continue
;
}
taosArrayPush
(
readerList
,
&
pReader
);
}
int64_t
stt3
=
taosGetTimestampUs
();
qDebug
(
"metaGetTableEntryByUidTest2 rows:%d, cost:%ld us"
,
taosArrayGetSize
(
uidList
),
stt3
-
stt2
);
for
(
int
i
=
0
;
i
<
taosArrayGetSize
(
readerList
);
i
++
){
SMetaReader
*
pReader
=
taosArrayGet
(
readerList
,
i
);
metaReaderInit
(
pReader
,
meta
,
0
);
// decode the entry
tDecoderInit
(
&
pReader
->
coder
,
pReader
->
pBuf
,
pReader
->
szBuf
);
if
(
metaDecodeEntry
(
&
pReader
->
coder
,
&
pReader
->
me
)
<
0
)
{
}
metaReaderClear
(
pReader
);
}
int64_t
stt4
=
taosGetTimestampUs
();
qDebug
(
"metaGetTableEntryByUidTest3 rows:%d, cost:%ld us"
,
taosArrayGetSize
(
readerList
),
stt4
-
stt3
);
return
0
;
}
int
metaGetTableEntryByUid
(
SMetaReader
*
pReader
,
tb_uid_t
uid
)
{
SMeta
*
pMeta
=
pReader
->
pMeta
;
int64_t
version
;
...
...
source/libs/executor/src/executil.c
浏览文件 @
32f9bc0d
...
...
@@ -382,6 +382,20 @@ SColumnInfoData* getColInfoResult(void* metaHandle, SArray* pTableList, SNode* p
goto
end
;
}
// int64_t stt = taosGetTimestampUs();
// SArray* arrAssist = taosArrayInit(rows, sizeof(SMetaReader));
// SArray* uidList = taosArrayInit(rows, sizeof(uint64_t));
// for (int32_t i = 0; i < rows; i++) {
// STableKeyInfo* info = taosArrayGet(pTableList, i);
// taosArrayPush(uidList, &info->uid);
// }
// code = metaGetTableEntryByUidTest(metaHandle, uidList);
//
// int64_t stt1 = taosGetTimestampUs();
// qDebug("generate tag meta rows:%d, cost:%ld us", rows, stt1-stt);
int64_t
st
=
taosGetTimestampUs
();
for
(
int32_t
i
=
0
;
i
<
rows
;
i
++
)
{
STableKeyInfo
*
info
=
taosArrayGet
(
pTableList
,
i
);
...
...
@@ -392,7 +406,7 @@ SColumnInfoData* getColInfoResult(void* metaHandle, SArray* pTableList, SNode* p
code
=
metaGetTableEntryByUid
(
&
mr
,
info
->
uid
);
// int64_t stt1 = taosGetTimestampUs();
// qDebug("generate tag get meta rows:%d, cost:%ld ms", rows, stt1-stt);
// SMetaReader *mr = taosArrayGet(arrAssist, i);
for
(
int32_t
j
=
0
;
j
<
taosArrayGetSize
(
pResBlock
->
pDataBlock
);
j
++
){
SColumnInfoData
*
pColInfo
=
(
SColumnInfoData
*
)
taosArrayGet
(
pResBlock
->
pDataBlock
,
j
);
STagVal
tagVal
=
{
0
};
...
...
@@ -465,6 +479,7 @@ int32_t getTableList(void* metaHandle, void* pVnode, SScanPhysiNode* pScanNode,
SIndexMetaArg
metaArg
=
{
.
metaEx
=
metaHandle
,
.
idx
=
tsdbGetIdx
(
metaHandle
),
.
ivtIdx
=
tsdbGetIvtIdx
(
metaHandle
),
.
suid
=
tableUid
};
int64_t
stt
=
taosGetTimestampUs
();
SArray
*
res
=
taosArrayInit
(
8
,
sizeof
(
uint64_t
));
SIdxFltStatus
status
=
SFLT_NOT_INDEX
;
code
=
doFilterTag
(
pTagIndexCond
,
&
metaArg
,
res
,
&
status
);
...
...
@@ -481,6 +496,8 @@ int32_t getTableList(void* metaHandle, void* pVnode, SScanPhysiNode* pScanNode,
taosArrayPush
(
pListInfo
->
pTableList
,
&
info
);
}
taosArrayDestroy
(
res
);
int64_t
stt1
=
taosGetTimestampUs
();
qDebug
(
"generate table list, cost:%ld us"
,
stt1
-
stt
);
}
else
{
code
=
vnodeGetAllTableList
(
pVnode
,
tableUid
,
pListInfo
->
pTableList
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录