Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
78db753a
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22017
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看板
提交
78db753a
编写于
6月 01, 2022
作者:
M
Minghao Li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: review syncNodeAppendEntriesPeersSnapshot
上级
403f6085
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
6 deletion
+22
-6
source/libs/sync/src/syncMain.c
source/libs/sync/src/syncMain.c
+16
-4
source/libs/sync/src/syncReplication.c
source/libs/sync/src/syncReplication.c
+6
-2
未找到文件。
source/libs/sync/src/syncMain.c
浏览文件 @
78db753a
...
...
@@ -1169,7 +1169,15 @@ void syncNodeBecomeLeader(SSyncNode* pSyncNode) {
for
(
int
i
=
0
;
i
<
pSyncNode
->
pNextIndex
->
replicaNum
;
++
i
)
{
// maybe overwrite myself, no harm
// just do it!
pSyncNode
->
pNextIndex
->
index
[
i
]
=
pSyncNode
->
pLogStore
->
getLastIndex
(
pSyncNode
->
pLogStore
)
+
1
;
// pSyncNode->pNextIndex->index[i] = pSyncNode->pLogStore->getLastIndex(pSyncNode->pLogStore) + 1;
// maybe wal is deleted
SyncIndex
lastIndex
;
SyncTerm
lastTerm
;
int32_t
code
=
syncNodeGetLastIndexTerm
(
pSyncNode
,
&
lastIndex
,
&
lastTerm
);
ASSERT
(
code
==
0
);
pSyncNode
->
pNextIndex
->
index
[
i
]
=
lastIndex
+
1
;
}
for
(
int
i
=
0
;
i
<
pSyncNode
->
pMatchIndex
->
replicaNum
;
++
i
)
{
...
...
@@ -1299,9 +1307,13 @@ int32_t syncNodeGetPreIndexTerm(SSyncNode* pSyncNode, SyncIndex index, SyncIndex
*
pPreTerm
=
snapshot
.
lastApplyTerm
;
}
else
{
SSyncRaftEntry
*
pPreEntry
=
pSyncNode
->
pLogStore
->
getEntry
(
pSyncNode
->
pLogStore
,
preIndex
);
ASSERT
(
pPreEntry
!=
NULL
);
*
pPreIndex
=
pPreEntry
->
index
;
*
pPreTerm
=
pPreEntry
->
term
;
if
(
pPreEntry
!=
NULL
)
{
*
pPreIndex
=
pPreEntry
->
index
;
*
pPreTerm
=
pPreEntry
->
term
;
}
else
{
*
pPreIndex
=
SYNC_INDEX_INVALID
;
*
pPreTerm
=
0
;
}
}
return
0
;
...
...
source/libs/sync/src/syncReplication.c
浏览文件 @
78db753a
...
...
@@ -126,7 +126,6 @@ int32_t syncNodeAppendEntriesPeersSnapshot(SSyncNode* pSyncNode) {
for
(
int
i
=
0
;
i
<
pSyncNode
->
peersNum
;
++
i
)
{
SRaftId
*
pDestId
=
&
(
pSyncNode
->
peersId
[
i
]);
// set prevLogIndex
SyncIndex
nextIndex
=
syncIndexMgrGetIndex
(
pSyncNode
->
pNextIndex
,
pDestId
);
SyncIndex
preLogIndex
;
...
...
@@ -139,6 +138,12 @@ int32_t syncNodeAppendEntriesPeersSnapshot(SSyncNode* pSyncNode) {
// SyncIndex lastIndex = syncUtilMinIndex(pSyncNode->pLogStore->getLastIndex(pSyncNode->pLogStore), nextIndex);
if
(
syncNodeIsIndexInSnapshot
(
pSyncNode
,
nextIndex
))
{
// will send this msg until snapshot receive finish!
SSnapshot
snapshot
;
pSyncNode
->
pFsm
->
FpGetSnapshot
(
pSyncNode
->
pFsm
,
&
snapshot
);
sInfo
(
"nextIndex:%ld in snapshot: <lastApplyIndex:%ld, lastApplyTerm:%lu>, begin snapshot"
,
nextIndex
,
snapshot
.
lastApplyIndex
,
snapshot
.
lastApplyTerm
);
// to claim leader
SyncAppendEntries
*
pMsg
=
syncAppendEntriesBuild
(
0
,
pSyncNode
->
vgId
);
assert
(
pMsg
!=
NULL
);
...
...
@@ -163,7 +168,6 @@ int32_t syncNodeAppendEntriesPeersSnapshot(SSyncNode* pSyncNode) {
}
}
ASSERT
(
pSender
!=
NULL
);
snapshotSenderStart
(
pSender
);
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录