Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5bce5c69
T
TDengine
项目概览
taosdata
/
TDengine
12 个月 前同步成功
通知
1181
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,发现更多精彩内容 >>
提交
5bce5c69
编写于
8月 24, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more code
上级
e39a08f7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
40 addition
and
2 deletion
+40
-2
source/dnode/vnode/src/inc/tsdb.h
source/dnode/vnode/src/inc/tsdb.h
+2
-0
source/dnode/vnode/src/tsdb/tsdbCommit.c
source/dnode/vnode/src/tsdb/tsdbCommit.c
+11
-0
source/dnode/vnode/src/tsdb/tsdbMerge.c
source/dnode/vnode/src/tsdb/tsdbMerge.c
+27
-2
未找到文件。
source/dnode/vnode/src/inc/tsdb.h
浏览文件 @
5bce5c69
...
@@ -281,6 +281,8 @@ int32_t tsdbReadDelIdx(SDelFReader *pReader, SArray *aDelIdx);
...
@@ -281,6 +281,8 @@ int32_t tsdbReadDelIdx(SDelFReader *pReader, SArray *aDelIdx);
// tsdbRead.c ==============================================================================================
// tsdbRead.c ==============================================================================================
int32_t
tsdbTakeReadSnap
(
STsdb
*
pTsdb
,
STsdbReadSnap
**
ppSnap
);
int32_t
tsdbTakeReadSnap
(
STsdb
*
pTsdb
,
STsdbReadSnap
**
ppSnap
);
void
tsdbUntakeReadSnap
(
STsdb
*
pTsdb
,
STsdbReadSnap
*
pSnap
);
void
tsdbUntakeReadSnap
(
STsdb
*
pTsdb
,
STsdbReadSnap
*
pSnap
);
// tsdbMerge.c ==============================================================================================
int32_t
tsdbMerge
(
STsdb
*
pTsdb
);
#define TSDB_CACHE_NO(c) ((c).cacheLast == 0)
#define TSDB_CACHE_NO(c) ((c).cacheLast == 0)
#define TSDB_CACHE_LAST_ROW(c) (((c).cacheLast & 1) > 0)
#define TSDB_CACHE_LAST_ROW(c) (((c).cacheLast & 1) > 0)
...
...
source/dnode/vnode/src/tsdb/tsdbCommit.c
浏览文件 @
5bce5c69
...
@@ -28,6 +28,7 @@ typedef struct {
...
@@ -28,6 +28,7 @@ typedef struct {
typedef
struct
{
typedef
struct
{
STsdb
*
pTsdb
;
STsdb
*
pTsdb
;
int8_t
toMerge
;
/* commit data */
/* commit data */
int64_t
commitID
;
int64_t
commitID
;
int32_t
minutes
;
int32_t
minutes
;
...
@@ -394,6 +395,7 @@ static int32_t tsdbCommitFileDataStart(SCommitter *pCommitter) {
...
@@ -394,6 +395,7 @@ static int32_t tsdbCommitFileDataStart(SCommitter *pCommitter) {
SDFileSet
wSet
=
{
0
};
SDFileSet
wSet
=
{
0
};
if
(
pRSet
)
{
if
(
pRSet
)
{
ASSERT
(
pRSet
->
nLastF
<
pCommitter
->
maxLast
);
ASSERT
(
pRSet
->
nLastF
<
pCommitter
->
maxLast
);
fHead
=
(
SHeadFile
){.
commitID
=
pCommitter
->
commitID
};
fHead
=
(
SHeadFile
){.
commitID
=
pCommitter
->
commitID
};
fData
=
*
pRSet
->
pDataF
;
fData
=
*
pRSet
->
pDataF
;
fSma
=
*
pRSet
->
pSmaF
;
fSma
=
*
pRSet
->
pSmaF
;
...
@@ -409,6 +411,10 @@ static int32_t tsdbCommitFileDataStart(SCommitter *pCommitter) {
...
@@ -409,6 +411,10 @@ static int32_t tsdbCommitFileDataStart(SCommitter *pCommitter) {
}
}
wSet
.
nLastF
=
pRSet
->
nLastF
+
1
;
wSet
.
nLastF
=
pRSet
->
nLastF
+
1
;
wSet
.
aLastF
[
wSet
.
nLastF
-
1
]
=
&
fLast
;
// todo
wSet
.
aLastF
[
wSet
.
nLastF
-
1
]
=
&
fLast
;
// todo
if
(
wSet
.
nLastF
==
pCommitter
->
maxLast
)
{
pCommitter
->
toMerge
=
1
;
}
}
else
{
}
else
{
fHead
=
(
SHeadFile
){.
commitID
=
pCommitter
->
commitID
};
fHead
=
(
SHeadFile
){.
commitID
=
pCommitter
->
commitID
};
fData
=
(
SDataFile
){.
commitID
=
pCommitter
->
commitID
};
fData
=
(
SDataFile
){.
commitID
=
pCommitter
->
commitID
};
...
@@ -1277,6 +1283,11 @@ static int32_t tsdbEndCommit(SCommitter *pCommitter, int32_t eno) {
...
@@ -1277,6 +1283,11 @@ static int32_t tsdbEndCommit(SCommitter *pCommitter, int32_t eno) {
tsdbFSDestroy
(
&
pCommitter
->
fs
);
tsdbFSDestroy
(
&
pCommitter
->
fs
);
taosArrayDestroy
(
pCommitter
->
aTbDataP
);
taosArrayDestroy
(
pCommitter
->
aTbDataP
);
if
(
pCommitter
->
toMerge
)
{
code
=
tsdbMerge
(
pTsdb
);
if
(
code
)
goto
_err
;
}
tsdbInfo
(
"vgId:%d, tsdb end commit"
,
TD_VID
(
pTsdb
->
pVnode
));
tsdbInfo
(
"vgId:%d, tsdb end commit"
,
TD_VID
(
pTsdb
->
pVnode
));
return
code
;
return
code
;
...
...
source/dnode/vnode/src/tsdb/tsdbMerge.c
浏览文件 @
5bce5c69
...
@@ -17,11 +17,36 @@
...
@@ -17,11 +17,36 @@
typedef
struct
{
typedef
struct
{
STsdb
*
pTsdb
;
STsdb
*
pTsdb
;
int8_t
maxLast
;
STsdbFS
fs
;
STsdbFS
fs
;
struct
{
SDataFReader
*
pReader
;
}
dReader
;
struct
{
SDataFWriter
*
pWriter
;
}
dWriter
;
}
STsdbMerger
;
}
STsdbMerger
;
int32_t
tsdbMerge
(
STsdb
*
pTsdb
)
{
int32_t
tsdbMerge
(
STsdb
*
pTsdb
)
{
int32_t
code
=
0
;
int32_t
code
=
0
;
// TODO
STsdbMerger
merger
=
{
0
};
STsdbMerger
*
pMerger
=
&
merger
;
pMerger
->
pTsdb
=
pTsdb
;
pMerger
->
maxLast
=
TSDB_DEFAULT_LAST_FILE
;
code
=
tsdbFSCopy
(
pTsdb
,
&
pMerger
->
fs
);
if
(
code
)
goto
_err
;
for
(
int32_t
iSet
=
0
;
iSet
<
taosArrayGetSize
(
pMerger
->
fs
.
aDFileSet
);
iSet
++
)
{
SDFileSet
*
pSet
=
(
SDFileSet
*
)
taosArrayGet
(
pMerger
->
fs
.
aDFileSet
,
iSet
);
if
(
pSet
->
nLastF
<
pMerger
->
maxLast
)
continue
;
// do merge the file
}
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb merge failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
return
code
;
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录