Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a4d6d84e
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
a4d6d84e
编写于
7月 18, 2023
作者:
D
dmchen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
upperindex
上级
8157b850
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
22 deletion
+16
-22
source/libs/sync/src/syncMain.c
source/libs/sync/src/syncMain.c
+2
-0
source/libs/sync/src/syncPipeline.c
source/libs/sync/src/syncPipeline.c
+14
-22
未找到文件。
source/libs/sync/src/syncMain.c
浏览文件 @
a4d6d84e
...
...
@@ -514,6 +514,7 @@ SSyncState syncGetState(int64_t rid) {
}
else
{
state
.
canRead
=
state
.
restored
;
}
/*
double progress = 0;
if(pSyncNode->pLogBuf->totalIndex > 0 && pSyncNode->pLogBuf->commitIndex > 0){
progress = (double)pSyncNode->pLogBuf->commitIndex/(double)pSyncNode->pLogBuf->totalIndex;
...
...
@@ -526,6 +527,7 @@ SSyncState syncGetState(int64_t rid) {
"progress:%lf, progress:%d",
pSyncNode->vgId,
pSyncNode->pLogBuf->commitIndex, pSyncNode->pLogBuf->totalIndex, progress, state.progress);
*/
syncNodeRelease
(
pSyncNode
);
}
...
...
source/libs/sync/src/syncPipeline.c
浏览文件 @
a4d6d84e
...
...
@@ -484,8 +484,7 @@ int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* p
taosMsleep
(
1
);
goto
_out
;
}
ASSERT
(
pEntry
->
index
==
pBuf
->
matchIndex
);
if
(
pEntry
->
originalRpcType
==
TDMT_SYNC_CONFIG_CHANGE
){
if
(
pNode
->
pLogBuf
->
commitIndex
==
pEntry
->
index
-
1
){
sInfo
(
"vgId:%d, to change config at %s. "
...
...
@@ -518,6 +517,8 @@ int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* p
// replicate on demand
(
void
)
syncNodeReplicateWithoutLock
(
pNode
);
ASSERT
(
pEntry
->
index
==
pBuf
->
matchIndex
);
// update my match index
matchIndex
=
pBuf
->
matchIndex
;
syncIndexMgrSetIndex
(
pNode
->
pMatchIndex
,
&
pNode
->
myRaftId
,
pBuf
->
matchIndex
);
...
...
@@ -535,11 +536,12 @@ _out:
int32_t
syncFsmExecute
(
SSyncNode
*
pNode
,
SSyncFSM
*
pFsm
,
ESyncState
role
,
SyncTerm
term
,
SSyncRaftEntry
*
pEntry
,
int32_t
applyCode
,
bool
force
)
{
if
(
pNode
->
replicaNum
==
1
&&
pNode
->
raftCfg
.
cfg
.
nodeInfo
[
pNode
->
raftCfg
.
cfg
.
myIndex
].
nodeRole
!=
TAOS_SYNC_ROLE_LEARNER
&&
pNode
->
restoreFinish
&&
pNode
->
vgId
!=
1
/*&& pEntry->originalRpcType != TDMT_SYNC_CONFIG_CHANGE*/
//learner need to execute fsm when it catch up entry log
//if force is true, keep all contition check to execute fsm
if
(
pNode
->
replicaNum
==
1
&&
pNode
->
restoreFinish
&&
pNode
->
vgId
!=
1
&&
pNode
->
raftCfg
.
cfg
.
nodeInfo
[
pNode
->
raftCfg
.
cfg
.
myIndex
].
nodeRole
!=
TAOS_SYNC_ROLE_LEARNER
&&
force
==
false
)
{
sDebug
(
"vgId:%d, not to execute, index:%"
PRId64
", term:%"
PRId64
", type:%s code:0x%x, replicaNum:%d,"
sDebug
(
"vgId:%d, not to execute
fsm
, index:%"
PRId64
", term:%"
PRId64
", type:%s code:0x%x, replicaNum:%d,"
"role:%d, restoreFinish:%d"
,
pNode
->
vgId
,
pEntry
->
index
,
pEntry
->
term
,
TMSG_INFO
(
pEntry
->
originalRpcType
),
applyCode
,
pNode
->
replicaNum
,
pNode
->
raftCfg
.
cfg
.
nodeInfo
[
pNode
->
raftCfg
.
cfg
.
myIndex
].
nodeRole
,
pNode
->
restoreFinish
);
...
...
@@ -653,17 +655,7 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm
goto
_out
;
}
//TODO cdm tmp code
if
(
index
+
1
>
upperIndex
){
sInfo
(
"vgId:%d, exeed upperIndex. index + 1:%"
PRId64
", term:%"
PRId64
", role:%d, current term:%"
PRId64
", upperIndex:%"
PRId64
", commitIndex:%"
PRId64
"matchIndex:%"
PRId64
,
vgId
,
pNextEntry
->
index
,
pNextEntry
->
term
,
role
,
currentTerm
,
upperIndex
,
commitIndex
,
pBuf
->
matchIndex
);
}
//for 2->1, need to apply config change entry in sync thead
//for 2->1, need to apply config change entry in sync thread,
if
(
pNode
->
replicaNum
==
1
){
if
(
syncFsmExecute
(
pNode
,
pFsm
,
role
,
currentTerm
,
pNextEntry
,
0
,
true
)
!=
0
)
{
sError
(
"vgId:%d, failed to execute sync log entry. index:%"
PRId64
", term:%"
PRId64
...
...
@@ -684,13 +676,13 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm
pNextEntry
=
NULL
;
}
}
if
(
!
inBuf
)
{
syncEntryDestroy
(
pEntry
);
pEntry
=
NULL
;
}
}
if
(
!
inBuf
)
{
syncEntryDestroy
(
pEntry
);
pEntry
=
NULL
;
}
// recycle
SyncIndex
until
=
pBuf
->
commitIndex
-
TSDB_SYNC_LOG_BUFFER_RETENTION
;
for
(
SyncIndex
index
=
pBuf
->
startIndex
;
index
<
until
;
index
++
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录