Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
d73306f6
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d73306f6
编写于
4月 24, 2023
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh(query): opt last row read performance.
上级
5663550d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
23 deletion
+29
-23
source/dnode/vnode/src/tsdb/tsdbRead.c
source/dnode/vnode/src/tsdb/tsdbRead.c
+29
-23
未找到文件。
source/dnode/vnode/src/tsdb/tsdbRead.c
浏览文件 @
d73306f6
...
...
@@ -741,7 +741,6 @@ static int32_t tsdbReaderCreate(SVnode* pVnode, SQueryTableDataCond* pCond, STsd
pReader
->
type
=
pCond
->
type
;
pReader
->
window
=
updateQueryTimeWindow
(
pReader
->
pTsdb
,
&
pCond
->
twindows
);
pReader
->
blockInfoBuf
.
numPerBucket
=
1000
;
// 1000 tables per bucket
pReader
->
status
.
pLDataIter
=
taosMemoryCalloc
(
pVnode
->
config
.
sttTrigger
,
sizeof
(
SLDataIter
));
if
(
pReader
->
pResBlock
==
NULL
)
{
pReader
->
freeBlock
=
true
;
...
...
@@ -774,6 +773,12 @@ static int32_t tsdbReaderCreate(SVnode* pVnode, SQueryTableDataCond* pCond, STsd
goto
_end
;
}
pReader
->
status
.
pLDataIter
=
taosMemoryCalloc
(
pVnode
->
config
.
sttTrigger
,
sizeof
(
SLDataIter
));
if
(
pReader
->
status
.
pLDataIter
==
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_end
;
}
setColumnIdSlotList
(
pSup
,
pCond
->
colList
,
pCond
->
pSlotList
,
pCond
->
numOfCols
);
tsdbInitReaderLock
(
pReader
);
...
...
@@ -4368,29 +4373,38 @@ _err:
return
code
;
}
static
void
clearSharedPtr
(
STsdbReader
*
p
)
{
p
->
status
.
pLDataIter
=
NULL
;
p
->
status
.
pTableMap
=
NULL
;
p
->
status
.
uidList
.
tableUidList
=
NULL
;
p
->
pReadSnap
=
NULL
;
p
->
pSchema
=
NULL
;
p
->
pSchemaMap
=
NULL
;
}
static
void
setSharedPtr
(
STsdbReader
*
pDst
,
const
STsdbReader
*
pSrc
)
{
pDst
->
status
.
pTableMap
=
pSrc
->
status
.
pTableMap
;
pDst
->
status
.
pLDataIter
=
pSrc
->
status
.
pLDataIter
;
pDst
->
status
.
uidList
=
pSrc
->
status
.
uidList
;
pDst
->
pSchema
=
pSrc
->
pSchema
;
pDst
->
pSchemaMap
=
pSrc
->
pSchemaMap
;
pDst
->
pReadSnap
=
pSrc
->
pReadSnap
;
}
void
tsdbReaderClose
(
STsdbReader
*
pReader
)
{
if
(
pReader
==
NULL
)
{
return
;
}
tsdbAcquireReader
(
pReader
);
{
if
(
pReader
->
innerReader
[
0
]
!=
NULL
||
pReader
->
innerReader
[
1
]
!=
NULL
)
{
STsdbReader
*
p
=
pReader
->
innerReader
[
0
];
p
->
status
.
pTableMap
=
NULL
;
p
->
status
.
uidList
.
tableUidList
=
NULL
;
p
->
pReadSnap
=
NULL
;
p
->
pSchema
=
NULL
;
p
->
pSchemaMap
=
NULL
;
clearSharedPtr
(
p
);
p
=
pReader
->
innerReader
[
1
];
p
->
status
.
pTableMap
=
NULL
;
p
->
status
.
uidList
.
tableUidList
=
NULL
;
p
->
pReadSnap
=
NULL
;
p
->
pSchema
=
NULL
;
p
->
pSchemaMap
=
NULL
;
clearSharedPtr
(
p
);
tsdbReaderClose
(
pReader
->
innerReader
[
0
]);
tsdbReaderClose
(
pReader
->
innerReader
[
1
]);
...
...
@@ -4627,18 +4641,10 @@ int32_t tsdbReaderResume(STsdbReader* pReader) {
// we need only one row
pPrevReader
->
capacity
=
1
;
pPrevReader
->
status
.
pTableMap
=
pReader
->
status
.
pTableMap
;
pPrevReader
->
status
.
uidList
=
pReader
->
status
.
uidList
;
pPrevReader
->
pSchema
=
pReader
->
pSchema
;
pPrevReader
->
pSchemaMap
=
pReader
->
pSchemaMap
;
pPrevReader
->
pReadSnap
=
pReader
->
pReadSnap
;
setSharedPtr
(
pPrevReader
,
pReader
);
pNextReader
->
capacity
=
1
;
pNextReader
->
status
.
pTableMap
=
pReader
->
status
.
pTableMap
;
pNextReader
->
status
.
uidList
=
pReader
->
status
.
uidList
;
pNextReader
->
pSchema
=
pReader
->
pSchema
;
pNextReader
->
pSchemaMap
=
pReader
->
pSchemaMap
;
pNextReader
->
pReadSnap
=
pReader
->
pReadSnap
;
setSharedPtr
(
pNextReader
,
pReader
);
code
=
doOpenReaderImpl
(
pPrevReader
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录