Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4c4e1486
T
TDengine
项目概览
taosdata
/
TDengine
10 个月 前同步成功
通知
1178
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,体验更适合开发者的 AI 搜索 >>
提交
4c4e1486
编写于
4月 25, 2023
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: do some internal refactor.
上级
e724bc15
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
20 deletion
+25
-20
source/dnode/vnode/src/tsdb/tsdbRead.c
source/dnode/vnode/src/tsdb/tsdbRead.c
+25
-20
未找到文件。
source/dnode/vnode/src/tsdb/tsdbRead.c
浏览文件 @
4c4e1486
...
...
@@ -891,8 +891,7 @@ static void cleanupTableScanInfo(SSHashObj* pTableMap) {
}
}
static
int32_t
doLoadFileBlock
(
STsdbReader
*
pReader
,
SArray
*
pIndexList
,
SBlockNumber
*
pBlockNum
)
{
int32_t
numOfQTable
=
0
;
static
int32_t
doLoadFileBlock
(
STsdbReader
*
pReader
,
SArray
*
pIndexList
,
SBlockNumber
*
pBlockNum
,
SArray
*
pTableScanInfoList
)
{
size_t
sizeInDisk
=
0
;
size_t
numOfTables
=
taosArrayGetSize
(
pIndexList
);
...
...
@@ -952,7 +951,7 @@ static int32_t doLoadFileBlock(STsdbReader* pReader, SArray* pIndexList, SBlockN
}
if
(
taosArrayGetSize
(
pScanInfo
->
pBlockList
)
>
0
)
{
numOfQTable
+=
1
;
taosArrayPush
(
pTableScanInfoList
,
&
pScanInfo
)
;
}
}
...
...
@@ -963,8 +962,8 @@ static int32_t doLoadFileBlock(STsdbReader* pReader, SArray* pIndexList, SBlockN
tsdbDebug
(
"load block of %ld tables completed, blocks:%d in %d tables, last-files:%d, block-info-size:%.2f Kb, elapsed "
"time:%.2f ms %s"
,
numOfTables
,
pBlockNum
->
numOfBlocks
,
numOfQTable
,
pBlockNum
->
numOfLastFiles
,
sizeInDisk
/
1000
.
0
,
el
,
pReader
->
idStr
);
numOfTables
,
pBlockNum
->
numOfBlocks
,
(
int32_t
)
taosArrayGetSize
(
pTableScanInfoList
),
pBlockNum
->
numOfLastFiles
,
sizeInDisk
/
1000
.
0
,
el
,
pReader
->
idStr
);
pReader
->
cost
.
numOfBlocks
+=
total
;
pReader
->
cost
.
headFileLoadTime
+=
el
;
...
...
@@ -1443,7 +1442,7 @@ static int32_t doSetCurrentBlock(SDataBlockIter* pBlockIter, const char* idStr)
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
initBlockIterator
(
STsdbReader
*
pReader
,
SDataBlockIter
*
pBlockIter
,
int32_t
numOfBlocks
)
{
static
int32_t
initBlockIterator
(
STsdbReader
*
pReader
,
SDataBlockIter
*
pBlockIter
,
int32_t
numOfBlocks
,
SArray
*
pTableList
)
{
bool
asc
=
ASCENDING_TRAVERSE
(
pReader
->
order
);
SBlockOrderSupporter
sup
=
{
0
};
...
...
@@ -1452,7 +1451,8 @@ static int32_t initBlockIterator(STsdbReader* pReader, SDataBlockIter* pBlockIte
pBlockIter
->
pTableMap
=
pReader
->
status
.
pTableMap
;
// access data blocks according to the offset of each block in asc/desc order.
int32_t
numOfTables
=
(
int32_t
)
tSimpleHashGetSize
(
pReader
->
status
.
pTableMap
);
// int32_t numOfTables = (int32_t)tSimpleHashGetSize(pReader->status.pTableMap);
int32_t
numOfTables
=
taosArrayGetSize
(
pTableList
);
int64_t
st
=
taosGetTimestampUs
();
int32_t
code
=
initBlockOrderSupporter
(
&
sup
,
numOfTables
);
...
...
@@ -1464,16 +1464,18 @@ static int32_t initBlockIterator(STsdbReader* pReader, SDataBlockIter* pBlockIte
void
*
ptr
=
NULL
;
int32_t
iter
=
0
;
while
(
1
)
{
ptr
=
tSimpleHashIterate
(
pReader
->
status
.
pTableMap
,
ptr
,
&
iter
);
if
(
ptr
==
NULL
)
{
break
;
}
//
while (1) {
//
ptr = tSimpleHashIterate(pReader->status.pTableMap, ptr, &iter);
//
if (ptr == NULL) {
//
break;
//
}
STableBlockScanInfo
*
pTableScanInfo
=
*
(
STableBlockScanInfo
**
)
ptr
;
if
(
pTableScanInfo
->
pBlockList
==
NULL
||
taosArrayGetSize
(
pTableScanInfo
->
pBlockList
)
==
0
)
{
continue
;
}
for
(
int32_t
i
=
0
;
i
<
numOfTables
;
++
i
)
{
STableBlockScanInfo
*
pTableScanInfo
=
taosArrayGetP
(
pTableList
,
i
);
ASSERT
(
pTableScanInfo
->
pBlockList
!=
NULL
&&
taosArrayGetSize
(
pTableScanInfo
->
pBlockList
)
>
0
);
// if (pTableScanInfo->pBlockList == NULL || taosArrayGetSize(pTableScanInfo->pBlockList) == 0) {
// continue;
// }
size_t
num
=
taosArrayGetSize
(
pTableScanInfo
->
pBlockList
);
sup
.
numOfBlocksPerTable
[
sup
.
numOfTables
]
=
num
;
...
...
@@ -2914,7 +2916,7 @@ TSDBKEY getCurrentKeyInBuf(STableBlockScanInfo* pScanInfo, STsdbReader* pReader)
}
}
static
int32_t
moveToNextFile
(
STsdbReader
*
pReader
,
SBlockNumber
*
pBlockNum
)
{
static
int32_t
moveToNextFile
(
STsdbReader
*
pReader
,
SBlockNumber
*
pBlockNum
,
SArray
*
pTableList
)
{
SReaderStatus
*
pStatus
=
&
pReader
->
status
;
pBlockNum
->
numOfBlocks
=
0
;
pBlockNum
->
numOfLastFiles
=
0
;
...
...
@@ -2942,13 +2944,14 @@ static int32_t moveToNextFile(STsdbReader* pReader, SBlockNumber* pBlockNum) {
}
if
(
taosArrayGetSize
(
pIndexList
)
>
0
||
pReader
->
pFileReader
->
pSet
->
nSttF
>
0
)
{
code
=
doLoadFileBlock
(
pReader
,
pIndexList
,
pBlockNum
);
code
=
doLoadFileBlock
(
pReader
,
pIndexList
,
pBlockNum
,
pTableList
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
taosArrayDestroy
(
pIndexList
);
return
code
;
}
if
(
pBlockNum
->
numOfBlocks
+
pBlockNum
->
numOfLastFiles
>
0
)
{
ASSERT
(
taosArrayGetSize
(
pTableList
)
>
0
);
break
;
}
}
...
...
@@ -3353,7 +3356,9 @@ static void initBlockDumpInfo(STsdbReader* pReader, SDataBlockIter* pBlockIter)
static
int32_t
initForFirstBlockInFile
(
STsdbReader
*
pReader
,
SDataBlockIter
*
pBlockIter
)
{
SBlockNumber
num
=
{
0
};
int32_t
code
=
moveToNextFile
(
pReader
,
&
num
);
SArray
*
pTableList
=
taosArrayInit
(
40
,
POINTER_BYTES
);
int32_t
code
=
moveToNextFile
(
pReader
,
&
num
,
pTableList
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -3366,7 +3371,7 @@ static int32_t initForFirstBlockInFile(STsdbReader* pReader, SDataBlockIter* pBl
// initialize the block iterator for a new fileset
if
(
num
.
numOfBlocks
>
0
)
{
code
=
initBlockIterator
(
pReader
,
pBlockIter
,
num
.
numOfBlocks
);
code
=
initBlockIterator
(
pReader
,
pBlockIter
,
num
.
numOfBlocks
,
pTableList
);
}
else
{
// no block data, only last block exists
tBlockDataReset
(
&
pReader
->
status
.
fileBlockData
);
resetDataBlockIterator
(
pBlockIter
,
pReader
->
order
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录