Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
b0221902
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
b0221902
编写于
7月 29, 2021
作者:
Y
yihaoDeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-5664]<feature> add more state of compact
上级
3aa6acfc
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
11 addition
and
9 deletion
+11
-9
src/inc/tsdb.h
src/inc/tsdb.h
+1
-1
src/tsdb/inc/tsdbint.h
src/tsdb/inc/tsdbint.h
+2
-2
src/tsdb/src/tsdbCompact.c
src/tsdb/src/tsdbCompact.c
+5
-3
src/tsdb/src/tsdbMain.c
src/tsdb/src/tsdbMain.c
+2
-2
src/vnode/src/vnodeMgmt.c
src/vnode/src/vnodeMgmt.c
+1
-1
未找到文件。
src/inc/tsdb.h
浏览文件 @
b0221902
...
...
@@ -94,7 +94,7 @@ STsdbRepo *tsdbOpenRepo(STsdbCfg *pCfg, STsdbAppH *pAppH);
int
tsdbCloseRepo
(
STsdbRepo
*
repo
,
int
toCommit
);
int32_t
tsdbConfigRepo
(
STsdbRepo
*
repo
,
STsdbCfg
*
pCfg
);
int
tsdbGetState
(
STsdbRepo
*
repo
);
bool
tsdbInCompact
(
STsdbRepo
*
repo
);
int8_t
tsdbGetCompactState
(
STsdbRepo
*
repo
);
// --------- TSDB TABLE DEFINITION
typedef
struct
{
uint64_t
uid
;
// the unique table ID
...
...
src/tsdb/inc/tsdbint.h
浏览文件 @
b0221902
...
...
@@ -92,7 +92,7 @@ struct STsdbRepo {
pthread_mutex_t
mutex
;
bool
repoLocked
;
int32_t
code
;
// Commit code
bool
inCompact
;
// is in compact process
?
int8_t
compactState
;
// compact state: inCompact/noCompact/waitingCompact
?
};
#define REPO_ID(r) (r)->config.tsdbId
...
...
@@ -139,4 +139,4 @@ static FORCE_INLINE int tsdbGetNextMaxTables(int tid) {
}
#endif
#endif
/* _TD_TSDB_INT_H_ */
\ No newline at end of file
#endif
/* _TD_TSDB_INT_H_ */
src/tsdb/src/tsdbCompact.c
浏览文件 @
b0221902
...
...
@@ -58,6 +58,7 @@ static int tsdbCompactFSetImpl(SCompactH *pComph);
static
int
tsdbWriteBlockToRightFile
(
SCompactH
*
pComph
,
STable
*
pTable
,
SDataCols
*
pDataCols
,
void
**
ppBuf
,
void
**
ppCBuf
);
enum
{
TSDB_NO_COMPACT
,
TSDB_IN_COMPACT
,
TSDB_WAITING_COMPACT
};
int
tsdbCompact
(
STsdbRepo
*
pRepo
)
{
return
tsdbAsyncCompact
(
pRepo
);
}
void
*
tsdbCompactImpl
(
STsdbRepo
*
pRepo
)
{
...
...
@@ -89,16 +90,17 @@ _err:
}
static
int
tsdbAsyncCompact
(
STsdbRepo
*
pRepo
)
{
pRepo
->
compactState
=
TSDB_WAITING_COMPACT
;
tsem_wait
(
&
(
pRepo
->
readyToCommit
));
return
tsdbScheduleCommit
(
pRepo
,
COMPACT_REQ
);
}
static
void
tsdbStartCompact
(
STsdbRepo
*
pRepo
)
{
ASSERT
(
!
pRepo
->
inCompact
);
assert
(
pRepo
->
compactState
!=
TSDB_IN_COMPACT
);
tsdbInfo
(
"vgId:%d start to compact!"
,
REPO_ID
(
pRepo
));
tsdbStartFSTxn
(
pRepo
,
0
,
0
);
pRepo
->
code
=
TSDB_CODE_SUCCESS
;
pRepo
->
inCompact
=
true
;
pRepo
->
compactState
=
TSDB_IN_COMPACT
;
}
static
void
tsdbEndCompact
(
STsdbRepo
*
pRepo
,
int
eno
)
{
...
...
@@ -107,7 +109,7 @@ static void tsdbEndCompact(STsdbRepo *pRepo, int eno) {
}
else
{
tsdbEndFSTxn
(
pRepo
);
}
pRepo
->
inCompact
=
false
;
pRepo
->
compactState
=
TSDB_NO_COMPACT
;
tsdbInfo
(
"vgId:%d compact over, %s"
,
REPO_ID
(
pRepo
),
(
eno
==
TSDB_CODE_SUCCESS
)
?
"succeed"
:
"failed"
);
tsem_post
(
&
(
pRepo
->
readyToCommit
));
}
...
...
src/tsdb/src/tsdbMain.c
浏览文件 @
b0221902
...
...
@@ -197,7 +197,7 @@ STsdbRepoInfo *tsdbGetStatus(STsdbRepo *pRepo) { return NULL; }
int
tsdbGetState
(
STsdbRepo
*
repo
)
{
return
repo
->
state
;
}
bool
tsdbInCompact
(
STsdbRepo
*
repo
)
{
return
repo
->
inCompact
;
}
int8_t
tsdbGetCompactState
(
STsdbRepo
*
repo
)
{
return
(
int8_t
)(
repo
->
compactState
)
;
}
void
tsdbReportStat
(
void
*
repo
,
int64_t
*
totalPoints
,
int64_t
*
totalStorage
,
int64_t
*
compStorage
)
{
ASSERT
(
repo
!=
NULL
);
...
...
@@ -537,7 +537,7 @@ static STsdbRepo *tsdbNewRepo(STsdbCfg *pCfg, STsdbAppH *pAppH) {
pRepo
->
state
=
TSDB_STATE_OK
;
pRepo
->
code
=
TSDB_CODE_SUCCESS
;
pRepo
->
inCompact
=
false
;
pRepo
->
compactState
=
0
;
pRepo
->
config
=
*
pCfg
;
if
(
pAppH
)
{
pRepo
->
appH
=
*
pAppH
;
...
...
src/vnode/src/vnodeMgmt.c
浏览文件 @
b0221902
...
...
@@ -160,7 +160,7 @@ static void vnodeBuildVloadMsg(SVnodeObj *pVnode, SStatusMsg *pStatus) {
pLoad
->
status
=
pVnode
->
status
;
pLoad
->
role
=
pVnode
->
role
;
pLoad
->
replica
=
pVnode
->
syncCfg
.
replica
;
pLoad
->
compact
=
(
pVnode
->
tsdb
!=
NULL
)
&&
tsdbInCompact
(
pVnode
->
tsdb
)
?
1
:
0
;
pLoad
->
compact
=
(
pVnode
->
tsdb
!=
NULL
)
?
tsdbGetCompactState
(
pVnode
->
tsdb
)
:
0
;
}
int32_t
vnodeGetVnodeList
(
int32_t
vnodeList
[],
int32_t
*
numOfVnodes
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录