Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a7dad151
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
未验证
提交
a7dad151
编写于
2月 17, 2023
作者:
X
Xiaoyu Wang
提交者:
GitHub
2月 17, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #20004 from taosdata/fix/TS-2625
fix(tsdb/cache): use block index cache with last/last_row
上级
4353e70c
de9cafb0
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
22 addition
and
4 deletion
+22
-4
source/dnode/vnode/src/tsdb/tsdbCache.c
source/dnode/vnode/src/tsdb/tsdbCache.c
+22
-4
未找到文件。
source/dnode/vnode/src/tsdb/tsdbCache.c
浏览文件 @
a7dad151
...
...
@@ -17,7 +17,7 @@
static
int32_t
tsdbOpenBICache
(
STsdb
*
pTsdb
)
{
int32_t
code
=
0
;
SLRUCache
*
pCache
=
taosLRUCacheInit
(
5
*
1024
*
1024
,
1
,
.
5
);
SLRUCache
*
pCache
=
taosLRUCacheInit
(
10
*
1024
*
1024
,
0
,
.
5
);
if
(
pCache
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_err
;
...
...
@@ -644,6 +644,7 @@ typedef struct SFSNextRowIter {
SArray
*
aDFileSet
;
SDataFReader
**
pDataFReader
;
SArray
*
aBlockIdx
;
LRUHandle
*
aBlockIdxHandle
;
SBlockIdx
*
pBlockIdx
;
SMapData
blockMap
;
int32_t
nBlock
;
...
...
@@ -697,6 +698,7 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
}
// tMapDataReset(&state->blockIdxMap);
/*
if (!state->aBlockIdx) {
state->aBlockIdx = taosArrayInit(0, sizeof(SBlockIdx));
} else {
...
...
@@ -704,6 +706,13 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
}
code = tsdbReadBlockIdx(*state->pDataFReader, state->aBlockIdx);
if (code) goto _err;
*/
int32_t
code
=
tsdbCacheGetBlockIdx
((
*
state
->
pDataFReader
)
->
pTsdb
->
biCache
,
*
state
->
pDataFReader
,
&
state
->
aBlockIdxHandle
);
if
(
code
!=
TSDB_CODE_SUCCESS
||
state
->
aBlockIdxHandle
==
NULL
)
{
goto
_err
;
}
state
->
aBlockIdx
=
(
SArray
*
)
taosLRUCacheValue
((
*
state
->
pDataFReader
)
->
pTsdb
->
biCache
,
state
->
aBlockIdxHandle
);
/* if (state->pBlockIdx) { */
/* } */
...
...
@@ -772,7 +781,10 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
// resetLastBlockLoadInfo(state->pLoadInfo);
if
(
state
->
aBlockIdx
)
{
taosArrayDestroy
(
state
->
aBlockIdx
);
// taosArrayDestroy(state->aBlockIdx);
tsdbBICacheRelease
((
*
state
->
pDataFReader
)
->
pTsdb
->
biCache
,
state
->
aBlockIdxHandle
);
state
->
aBlockIdxHandle
=
NULL
;
state
->
aBlockIdx
=
NULL
;
}
...
...
@@ -795,7 +807,10 @@ _err:
resetLastBlockLoadInfo(state->pLoadInfo);
}*/
if
(
state
->
aBlockIdx
)
{
taosArrayDestroy
(
state
->
aBlockIdx
);
// taosArrayDestroy(state->aBlockIdx);
tsdbBICacheRelease
((
*
state
->
pDataFReader
)
->
pTsdb
->
biCache
,
state
->
aBlockIdxHandle
);
state
->
aBlockIdxHandle
=
NULL
;
state
->
aBlockIdx
=
NULL
;
}
if
(
state
->
pBlockData
)
{
...
...
@@ -821,7 +836,10 @@ int32_t clearNextRowFromFS(void *iter) {
state->pDataFReader = NULL;
}*/
if
(
state
->
aBlockIdx
)
{
taosArrayDestroy
(
state
->
aBlockIdx
);
// taosArrayDestroy(state->aBlockIdx);
tsdbBICacheRelease
((
*
state
->
pDataFReader
)
->
pTsdb
->
biCache
,
state
->
aBlockIdxHandle
);
state
->
aBlockIdxHandle
=
NULL
;
state
->
aBlockIdx
=
NULL
;
}
if
(
state
->
pBlockData
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录