Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a8eb32da
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看板
提交
a8eb32da
编写于
12月 21, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more code
上级
fc8802df
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
78 addition
and
26 deletion
+78
-26
source/dnode/vnode/src/inc/vnodeInt.h
source/dnode/vnode/src/inc/vnodeInt.h
+3
-7
source/dnode/vnode/src/tsdb/tsdbCompact.c
source/dnode/vnode/src/tsdb/tsdbCompact.c
+71
-13
source/dnode/vnode/src/vnd/vnodeCompact.c
source/dnode/vnode/src/vnd/vnodeCompact.c
+4
-6
未找到文件。
source/dnode/vnode/src/inc/vnodeInt.h
浏览文件 @
a8eb32da
...
...
@@ -76,7 +76,6 @@ typedef struct SRSmaSnapReader SRSmaSnapReader;
typedef
struct
SRSmaSnapWriter
SRSmaSnapWriter
;
typedef
struct
SSnapDataHdr
SSnapDataHdr
;
typedef
struct
SCommitInfo
SCommitInfo
;
typedef
struct
SCompactInfo
SCompactInfo
;
#define VNODE_META_DIR "meta"
#define VNODE_TSDB_DIR "tsdb"
...
...
@@ -428,13 +427,10 @@ struct SCommitInfo {
SVnodeInfo
info
;
SVnode
*
pVnode
;
TXN
*
txn
;
};
struct
SCompactInfo
{
SVnodeInfo
info
;
SVnode
*
pVnode
;
TXN
*
txn
;
};
// APIs
int32_t
(
*
commitFn
)(
STsdb
*
pTsdb
,
SCommitInfo
*
pInfo
);
};
#ifdef __cplusplus
}
#endif
...
...
source/dnode/vnode/src/tsdb/tsdbCompact.c
浏览文件 @
a8eb32da
...
...
@@ -15,23 +15,26 @@
#include "tsdb.h"
//
typedef struct {
//
} SMemDIter;
typedef
struct
{
}
SMemDIter
;
typedef
struct
{
SArray
*
aBlockIdx
;
// SArray<SBlockIdx>
SMapData
mDataBlk
;
// SMapData<SDataBlk>
SBlockData
bData
;
int32_t
iBlockIdx
;
int32_t
iDataBlk
;
int32_t
iRow
;
SDataFReader
*
pReader
;
SArray
*
aBlockIdx
;
// SArray<SBlockIdx>
SMapData
mDataBlk
;
// SMapData<SDataBlk>
SBlockData
bData
;
int32_t
iBlockIdx
;
int32_t
iDataBlk
;
int32_t
iRow
;
}
SDataDIter
;
typedef
struct
{
SArray
*
aSttBlk
;
// SArray<SSttBlk>
SBlockData
bData
;
int32_t
iSttBlk
;
int32_t
iRow
;
SDataFReader
*
pReader
;
int32_t
iStt
;
SArray
*
aSttBlk
;
// SArray<SSttBlk>
SBlockData
bData
;
int32_t
iSttBlk
;
int32_t
iRow
;
}
SSttDIter
;
typedef
struct
{
...
...
@@ -53,11 +56,66 @@ typedef struct {
#define TSDB_FLG_DEEP_COMPACT 0x1
// ITER =========================
static
int32_t
tsdbDataIterOpen
(
STsdbDataIter
*
pIter
)
{
static
int32_t
tsdbMemDIterOpen
(
STsdbDataIter
**
ppIter
)
{
int32_t
code
=
0
;
int32_t
lino
=
0
;
STsdbDataIter
*
pIter
=
(
STsdbDataIter
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pIter
)
+
sizeof
(
SMemDIter
));
if
(
pIter
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_exit
;
}
// TODO
_exit:
if
(
code
)
{
*
ppIter
=
NULL
;
}
else
{
*
ppIter
=
pIter
;
}
return
code
;
}
static
int32_t
tsdbDataDIterOpen
(
SDataFReader
*
pReader
,
STsdbDataIter
**
ppIter
)
{
int32_t
code
=
0
;
int32_t
lino
=
0
;
STsdbDataIter
*
pIter
=
(
STsdbDataIter
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pIter
)
+
sizeof
(
SDataDIter
));
if
(
NULL
==
pIter
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_exit
;
}
// TODO
_exit:
if
(
code
)
{
*
ppIter
=
NULL
;
}
else
{
*
ppIter
=
pIter
;
}
return
code
;
}
static
int32_t
tsdbSttDIterOpen
(
SDataFReader
*
pReader
,
STsdbDataIter
**
ppIter
)
{
int32_t
code
=
0
;
int32_t
lino
=
0
;
STsdbDataIter
*
pIter
=
(
STsdbDataIter
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pIter
)
+
sizeof
(
SSttDIter
));
if
(
pIter
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_exit
;
}
// TODO
_exit:
if
(
code
)
{
*
ppIter
=
NULL
;
}
else
{
*
ppIter
=
pIter
;
}
return
code
;
}
...
...
source/dnode/vnode/src/vnd/vnodeCompact.c
浏览文件 @
a8eb32da
...
...
@@ -17,9 +17,7 @@
extern
void
vnodePrepareCommit
(
SVnode
*
pVnode
);
#define vnodePrepareCompact vnodePrepareCommit
static
int32_t
vnodeCompactImpl
(
SCompactInfo
*
pInfo
)
{
static
int32_t
vnodeCompactImpl
(
SCommitInfo
*
pInfo
)
{
int32_t
code
=
0
;
// TODO
...
...
@@ -30,7 +28,7 @@ static int32_t vnodeCompactImpl(SCompactInfo *pInfo) {
static
int32_t
vnodeCompactTask
(
void
*
param
)
{
int32_t
code
=
0
;
SCom
pactInfo
*
pInfo
=
(
SCompac
tInfo
*
)
param
;
SCom
mitInfo
*
pInfo
=
(
SCommi
tInfo
*
)
param
;
// compact
vnodeCompactImpl
(
pInfo
);
...
...
@@ -46,10 +44,10 @@ int32_t vnodeAsyncCompact(SVnode *pVnode) {
int32_t
code
=
0
;
// prepare
vnodePrepareCom
pac
t
(
pVnode
);
vnodePrepareCom
mi
t
(
pVnode
);
// schedule compact task
SCom
pac
tInfo
*
pInfo
=
taosMemoryCalloc
(
1
,
sizeof
(
*
pInfo
));
SCom
mi
tInfo
*
pInfo
=
taosMemoryCalloc
(
1
,
sizeof
(
*
pInfo
));
if
(
NULL
==
pInfo
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_exit
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录