Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
7516ecae
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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,发现更多精彩内容 >>
提交
7516ecae
编写于
4月 24, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refact more vnode
上级
95b1e954
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
59 addition
and
15 deletion
+59
-15
source/dnode/vnode/src/inc/vnd.h
source/dnode/vnode/src/inc/vnd.h
+1
-0
source/dnode/vnode/src/meta/metaCommit.c
source/dnode/vnode/src/meta/metaCommit.c
+2
-0
source/dnode/vnode/src/vnd/vnodeCommit.c
source/dnode/vnode/src/vnd/vnodeCommit.c
+50
-10
source/dnode/vnode/src/vnd/vnodeSvr.c
source/dnode/vnode/src/vnd/vnodeSvr.c
+6
-5
未找到文件。
source/dnode/vnode/src/inc/vnd.h
浏览文件 @
7516ecae
...
@@ -72,6 +72,7 @@ int vnodeGetTableMeta(SVnode* pVnode, SRpcMsg* pMsg);
...
@@ -72,6 +72,7 @@ int vnodeGetTableMeta(SVnode* pVnode, SRpcMsg* pMsg);
// vnodeCommit ====================
// vnodeCommit ====================
int
vnodeBegin
(
SVnode
*
pVnode
);
int
vnodeBegin
(
SVnode
*
pVnode
);
int
vnodeShouldCommit
(
SVnode
*
pVnode
);
int
vnodeShouldCommit
(
SVnode
*
pVnode
);
int
vnodeCommit
(
SVnode
*
pVnode
);
int
vnodeSaveInfo
(
const
char
*
dir
,
const
SVnodeInfo
*
pCfg
);
int
vnodeSaveInfo
(
const
char
*
dir
,
const
SVnodeInfo
*
pCfg
);
int
vnodeCommitInfo
(
const
char
*
dir
,
const
SVnodeInfo
*
pInfo
);
int
vnodeCommitInfo
(
const
char
*
dir
,
const
SVnodeInfo
*
pInfo
);
int
vnodeLoadInfo
(
const
char
*
dir
,
SVnodeInfo
*
pInfo
);
int
vnodeLoadInfo
(
const
char
*
dir
,
SVnodeInfo
*
pInfo
);
...
...
source/dnode/vnode/src/meta/metaCommit.c
浏览文件 @
7516ecae
...
@@ -27,3 +27,5 @@ int metaBegin(SMeta *pMeta) {
...
@@ -27,3 +27,5 @@ int metaBegin(SMeta *pMeta) {
return
0
;
return
0
;
}
}
int
metaCommit
(
SMeta
*
pMeta
)
{
return
tdbCommit
(
pMeta
->
pEnv
,
&
pMeta
->
txn
);
}
source/dnode/vnode/src/vnd/vnodeCommit.c
浏览文件 @
7516ecae
...
@@ -22,7 +22,7 @@ static int vnodeEncodeInfo(const SVnodeInfo *pInfo, char **ppData);
...
@@ -22,7 +22,7 @@ static int vnodeEncodeInfo(const SVnodeInfo *pInfo, char **ppData);
static
int
vnodeDecodeInfo
(
uint8_t
*
pData
,
SVnodeInfo
*
pInfo
);
static
int
vnodeDecodeInfo
(
uint8_t
*
pData
,
SVnodeInfo
*
pInfo
);
static
int
vnodeStartCommit
(
SVnode
*
pVnode
);
static
int
vnodeStartCommit
(
SVnode
*
pVnode
);
static
int
vnodeEndCommit
(
SVnode
*
pVnode
);
static
int
vnodeEndCommit
(
SVnode
*
pVnode
);
static
int
vnodeCommit
(
void
*
arg
);
static
int
vnodeCommit
Impl
(
void
*
arg
);
static
void
vnodeWaitCommit
(
SVnode
*
pVnode
);
static
void
vnodeWaitCommit
(
SVnode
*
pVnode
);
int
vnodeBegin
(
SVnode
*
pVnode
)
{
int
vnodeBegin
(
SVnode
*
pVnode
)
{
...
@@ -55,13 +55,7 @@ int vnodeBegin(SVnode *pVnode) {
...
@@ -55,13 +55,7 @@ int vnodeBegin(SVnode *pVnode) {
return
0
;
return
0
;
}
}
int
vnodeShouldCommit
(
SVnode
*
pVnode
)
{
int
vnodeShouldCommit
(
SVnode
*
pVnode
)
{
return
pVnode
->
inUse
->
size
>
pVnode
->
config
.
szBuf
/
3
;
}
if
(
pVnode
->
inUse
->
size
>
pVnode
->
config
.
szBuf
/
3
)
{
return
1
;
}
return
0
;
}
int
vnodeSaveInfo
(
const
char
*
dir
,
const
SVnodeInfo
*
pInfo
)
{
int
vnodeSaveInfo
(
const
char
*
dir
,
const
SVnodeInfo
*
pInfo
)
{
char
fname
[
TSDB_FILENAME_LEN
];
char
fname
[
TSDB_FILENAME_LEN
];
...
@@ -183,7 +177,7 @@ int vnodeAsyncCommit(SVnode *pVnode) {
...
@@ -183,7 +177,7 @@ int vnodeAsyncCommit(SVnode *pVnode) {
// vnodeBufPoolSwitch(pVnode);
// vnodeBufPoolSwitch(pVnode);
tsdbPrepareCommit
(
pVnode
->
pTsdb
);
tsdbPrepareCommit
(
pVnode
->
pTsdb
);
vnodeScheduleTask
(
vnodeCommit
,
pVnode
);
vnodeScheduleTask
(
vnodeCommit
Impl
,
pVnode
);
return
0
;
return
0
;
}
}
...
@@ -195,7 +189,53 @@ int vnodeSyncCommit(SVnode *pVnode) {
...
@@ -195,7 +189,53 @@ int vnodeSyncCommit(SVnode *pVnode) {
return
0
;
return
0
;
}
}
static
int
vnodeCommit
(
void
*
arg
)
{
int
vnodeCommit
(
SVnode
*
pVnode
)
{
SVnodeInfo
info
;
char
dir
[
TSDB_FILENAME_LEN
];
pVnode
->
onCommit
=
pVnode
->
inUse
;
pVnode
->
inUse
=
NULL
;
// save info
info
.
config
=
pVnode
->
config
;
info
.
state
=
pVnode
->
state
;
snprintf
(
dir
,
TSDB_FILENAME_LEN
,
"%s%s%s"
,
tfsGetPrimaryPath
(
pVnode
->
pTfs
),
TD_DIRSEP
,
pVnode
->
path
);
if
(
vnodeSaveInfo
(
dir
,
&
info
)
<
0
)
{
ASSERT
(
0
);
return
-
1
;
}
// commit each sub-system
if
(
metaCommit
(
pVnode
->
pMeta
)
<
0
)
{
ASSERT
(
0
);
return
-
1
;
}
if
(
tsdbCommit
(
pVnode
->
pTsdb
)
<
0
)
{
ASSERT
(
0
);
return
-
1
;
}
if
(
tqCommit
(
pVnode
->
pTq
)
<
0
)
{
ASSERT
(
0
);
return
-
1
;
}
// walCommit (TODO)
// commit info
if
(
vnodeCommitInfo
(
dir
,
&
info
)
<
0
)
{
ASSERT
(
0
);
return
-
1
;
}
// apply the commit (TODO)
vnodeBufPoolReset
(
pVnode
->
onCommit
);
pVnode
->
onCommit
->
next
=
pVnode
->
pPool
;
pVnode
->
pPool
=
pVnode
->
onCommit
;
pVnode
->
onCommit
=
NULL
;
return
0
;
}
static
int
vnodeCommitImpl
(
void
*
arg
)
{
SVnode
*
pVnode
=
(
SVnode
*
)
arg
;
SVnode
*
pVnode
=
(
SVnode
*
)
arg
;
// metaCommit(pVnode->pMeta);
// metaCommit(pVnode->pMeta);
...
...
source/dnode/vnode/src/vnd/vnodeSvr.c
浏览文件 @
7516ecae
...
@@ -136,12 +136,13 @@ int vnodeProcessWriteReq(SVnode *pVnode, SRpcMsg *pMsg, int64_t version, SRpcMsg
...
@@ -136,12 +136,13 @@ int vnodeProcessWriteReq(SVnode *pVnode, SRpcMsg *pMsg, int64_t version, SRpcMsg
vDebug
(
"vgId: %d process %s request success, version: %"
PRId64
,
TD_VID
(
pVnode
),
TMSG_INFO
(
pMsg
->
msgType
),
version
);
vDebug
(
"vgId: %d process %s request success, version: %"
PRId64
,
TD_VID
(
pVnode
),
TMSG_INFO
(
pMsg
->
msgType
),
version
);
//
Check if it needs to commit
//
commit if need
if
(
vnodeShouldCommit
(
pVnode
))
{
if
(
vnodeShouldCommit
(
pVnode
))
{
// tsem_wait(&(pVnode->canCommit));
// commit current change
if
(
vnodeAsyncCommit
(
pVnode
)
<
0
)
{
vnodeCommit
(
pVnode
);
// TODO: handle error
}
// start a new one
vnodeBegin
(
pVnode
);
}
}
return
0
;
return
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录