Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
8b66fa15
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1185
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,发现更多精彩内容 >>
未验证
提交
8b66fa15
编写于
11月 16, 2020
作者:
S
Shengliang Guan
提交者:
GitHub
11月 16, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4244 from taosdata/feature/TD-2066
Feature/td 2066
上级
4cad46a8
1b7945d4
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
30 addition
and
4 deletion
+30
-4
src/inc/tsdb.h
src/inc/tsdb.h
+1
-1
src/tsdb/inc/tsdbMain.h
src/tsdb/inc/tsdbMain.h
+1
-0
src/tsdb/src/tsdbCommit.c
src/tsdb/src/tsdbCommit.c
+3
-0
src/tsdb/src/tsdbMain.c
src/tsdb/src/tsdbMain.c
+12
-2
src/tsdb/src/tsdbMemTable.c
src/tsdb/src/tsdbMemTable.c
+13
-1
未找到文件。
src/inc/tsdb.h
浏览文件 @
8b66fa15
...
...
@@ -83,7 +83,7 @@ STsdbCfg *tsdbGetCfg(const TSDB_REPO_T *repo);
int
tsdbCreateRepo
(
char
*
rootDir
,
STsdbCfg
*
pCfg
);
int32_t
tsdbDropRepo
(
char
*
rootDir
);
TSDB_REPO_T
*
tsdbOpenRepo
(
char
*
rootDir
,
STsdbAppH
*
pAppH
);
void
tsdbCloseRepo
(
TSDB_REPO_T
*
repo
,
int
toCommit
);
int
tsdbCloseRepo
(
TSDB_REPO_T
*
repo
,
int
toCommit
);
int32_t
tsdbConfigRepo
(
TSDB_REPO_T
*
repo
,
STsdbCfg
*
pCfg
);
int
tsdbGetState
(
TSDB_REPO_T
*
repo
);
...
...
src/tsdb/inc/tsdbMain.h
浏览文件 @
8b66fa15
...
...
@@ -235,6 +235,7 @@ typedef struct {
sem_t
readyToCommit
;
pthread_mutex_t
mutex
;
bool
repoLocked
;
int32_t
code
;
// Commit code
}
STsdbRepo
;
// ------------------ tsdbRWHelper.c
...
...
src/tsdb/src/tsdbCommit.c
浏览文件 @
8b66fa15
...
...
@@ -28,6 +28,8 @@ void *tsdbCommitData(STsdbRepo *pRepo) {
tsdbInfo
(
"vgId:%d start to commit! keyFirst %"
PRId64
" keyLast %"
PRId64
" numOfRows %"
PRId64
" meta rows: %d"
,
REPO_ID
(
pRepo
),
pMem
->
keyFirst
,
pMem
->
keyLast
,
pMem
->
numOfRows
,
listNEles
(
pMem
->
actList
));
pRepo
->
code
=
TSDB_CODE_SUCCESS
;
// Commit to update meta file
if
(
tsdbCommitMeta
(
pRepo
)
<
0
)
{
tsdbError
(
"vgId:%d error occurs while committing META data since %s"
,
REPO_ID
(
pRepo
),
tstrerror
(
terrno
));
...
...
@@ -49,6 +51,7 @@ void *tsdbCommitData(STsdbRepo *pRepo) {
_err:
ASSERT
(
terrno
!=
TSDB_CODE_SUCCESS
);
pRepo
->
code
=
terrno
;
tsdbInfo
(
"vgId:%d commit over, failed"
,
REPO_ID
(
pRepo
));
tsdbEndCommit
(
pRepo
,
terrno
);
...
...
src/tsdb/src/tsdbMain.c
浏览文件 @
8b66fa15
...
...
@@ -134,17 +134,20 @@ _err:
}
// Note: all working thread and query thread must stopped when calling this function
void
tsdbCloseRepo
(
TSDB_REPO_T
*
repo
,
int
toCommit
)
{
if
(
repo
==
NULL
)
return
;
int
tsdbCloseRepo
(
TSDB_REPO_T
*
repo
,
int
toCommit
)
{
if
(
repo
==
NULL
)
return
0
;
STsdbRepo
*
pRepo
=
(
STsdbRepo
*
)
repo
;
int
vgId
=
REPO_ID
(
pRepo
);
terrno
=
TSDB_CODE_SUCCESS
;
tsdbStopStream
(
pRepo
);
if
(
toCommit
)
{
tsdbAsyncCommit
(
pRepo
);
sem_wait
(
&
(
pRepo
->
readyToCommit
));
terrno
=
pRepo
->
code
;
}
tsdbUnRefMemTable
(
pRepo
,
pRepo
->
mem
);
tsdbUnRefMemTable
(
pRepo
,
pRepo
->
imem
);
...
...
@@ -156,6 +159,12 @@ void tsdbCloseRepo(TSDB_REPO_T *repo, int toCommit) {
tsdbCloseMeta
(
pRepo
);
tsdbFreeRepo
(
pRepo
);
tsdbDebug
(
"vgId:%d repository is closed"
,
vgId
);
if
(
terrno
!=
TSDB_CODE_SUCCESS
)
{
return
-
1
;
}
else
{
return
0
;
}
}
uint32_t
tsdbGetFileInfo
(
TSDB_REPO_T
*
repo
,
char
*
name
,
uint32_t
*
index
,
uint32_t
eindex
,
int64_t
*
size
)
{
...
...
@@ -619,6 +628,7 @@ static STsdbRepo *tsdbNewRepo(char *rootDir, STsdbAppH *pAppH, STsdbCfg *pCfg) {
}
pRepo
->
state
=
TSDB_STATE_OK
;
pRepo
->
code
=
TSDB_CODE_SUCCESS
;
int
code
=
pthread_mutex_init
(
&
pRepo
->
mutex
,
NULL
);
if
(
code
!=
0
)
{
...
...
src/tsdb/src/tsdbMemTable.c
浏览文件 @
8b66fa15
...
...
@@ -209,6 +209,10 @@ int tsdbAsyncCommit(STsdbRepo *pRepo) {
sem_wait
(
&
(
pRepo
->
readyToCommit
));
if
(
pRepo
->
code
!=
TSDB_CODE_SUCCESS
)
{
tsdbWarn
(
"vgId:%d try to commit when TSDB not in good state: %s"
,
REPO_ID
(
pRepo
),
tstrerror
(
terrno
));
}
if
(
pRepo
->
appH
.
notifyStatus
)
pRepo
->
appH
.
notifyStatus
(
pRepo
->
appH
.
appH
,
TSDB_STATUS_COMMIT_START
,
TSDB_CODE_SUCCESS
);
if
(
tsdbLockRepo
(
pRepo
)
<
0
)
return
-
1
;
pRepo
->
imem
=
pRepo
->
mem
;
...
...
@@ -223,10 +227,18 @@ int tsdbAsyncCommit(STsdbRepo *pRepo) {
int
tsdbSyncCommit
(
TSDB_REPO_T
*
repo
)
{
STsdbRepo
*
pRepo
=
(
STsdbRepo
*
)
repo
;
tsdbAsyncCommit
(
pRepo
);
sem_wait
(
&
(
pRepo
->
readyToCommit
));
sem_post
(
&
(
pRepo
->
readyToCommit
));
return
0
;
if
(
pRepo
->
code
!=
TSDB_CODE_SUCCESS
)
{
terrno
=
pRepo
->
code
;
return
-
1
;
}
else
{
terrno
=
TSDB_CODE_SUCCESS
;
return
0
;
}
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录