Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
58fd2228
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
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,发现更多精彩内容 >>
提交
58fd2228
编写于
11月 13, 2022
作者:
M
Minghao Li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(sync): pre snapshot
上级
352c2d8e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
13 addition
and
3 deletion
+13
-3
include/libs/sync/sync.h
include/libs/sync/sync.h
+1
-1
source/libs/sync/inc/syncSnapshot.h
source/libs/sync/inc/syncSnapshot.h
+1
-0
source/libs/sync/src/syncAppendEntries.c
source/libs/sync/src/syncAppendEntries.c
+5
-1
source/libs/sync/src/syncSnapshot.c
source/libs/sync/src/syncSnapshot.c
+6
-1
未找到文件。
include/libs/sync/sync.h
浏览文件 @
58fd2228
...
...
@@ -38,7 +38,7 @@ extern "C" {
#define SYNC_MNODE_LOG_RETENTION 10000
#define SYNC_VNODE_LOG_RETENTION 100
#define SNAPSHOT_MAX_CLOCK_SKEW_MS 1000 * 10
#define SNAPSHOT_WAIT_MS 1000 *
6
0
#define SNAPSHOT_WAIT_MS 1000 *
3
0
#define SYNC_APPEND_ENTRIES_TIMEOUT_MS 10000
...
...
source/libs/sync/inc/syncSnapshot.h
浏览文件 @
58fd2228
...
...
@@ -43,6 +43,7 @@ typedef struct SSyncSnapshotSender {
int64_t
sendingMS
;
SyncTerm
term
;
int64_t
startTime
;
int64_t
endTime
;
bool
finish
;
// init when create
...
...
source/libs/sync/src/syncAppendEntries.c
浏览文件 @
58fd2228
...
...
@@ -167,7 +167,11 @@ int32_t syncNodeOnAppendEntries(SSyncNode* ths, SyncAppendEntries* pMsg) {
if
(
pMsg
->
prevLogIndex
>=
startIndex
)
{
SyncTerm
myPreLogTerm
=
syncNodeGetPreTerm
(
ths
,
pMsg
->
prevLogIndex
+
1
);
ASSERT
(
myPreLogTerm
!=
SYNC_TERM_INVALID
);
// ASSERT(myPreLogTerm != SYNC_TERM_INVALID);
if
(
myPreLogTerm
==
SYNC_TERM_INVALID
)
{
syncLogRecvAppendEntries
(
ths
,
pMsg
,
"reject, pre-term invalid"
);
goto
_SEND_RESPONSE
;
}
if
(
myPreLogTerm
!=
pMsg
->
prevLogTerm
)
{
syncLogRecvAppendEntries
(
ths
,
pMsg
,
"reject, pre-term not match"
);
...
...
source/libs/sync/src/syncSnapshot.c
浏览文件 @
58fd2228
...
...
@@ -45,6 +45,7 @@ SSyncSnapshotSender *snapshotSenderCreate(SSyncNode *pSyncNode, int32_t replicaI
pSender
->
replicaIndex
=
replicaIndex
;
pSender
->
term
=
pSyncNode
->
pRaftStore
->
currentTerm
;
pSender
->
startTime
=
0
;
pSender
->
endTime
=
0
;
pSender
->
pSyncNode
->
pFsm
->
FpGetSnapshotInfo
(
pSender
->
pSyncNode
->
pFsm
,
&
(
pSender
->
snapshot
));
pSender
->
finish
=
false
;
}
else
{
...
...
@@ -132,6 +133,7 @@ int32_t snapshotSenderStop(SSyncSnapshotSender *pSender, bool finish) {
// update flag
pSender
->
start
=
false
;
pSender
->
finish
=
finish
;
pSender
->
endTime
=
taosGetTimestampMs
();
// close reader
if
(
pSender
->
pReader
!=
NULL
)
{
...
...
@@ -265,7 +267,7 @@ int32_t syncNodeStartSnapshot(SSyncNode *pSyncNode, SRaftId *pDestId) {
}
if
(
!
snapshotSenderIsStart
(
pSender
)
&&
pSender
->
finish
&&
taosGetTimestampMs
()
-
pSender
->
start
Time
<
SNAPSHOT_WAIT_MS
)
{
taosGetTimestampMs
()
-
pSender
->
end
Time
<
SNAPSHOT_WAIT_MS
)
{
sNTrace
(
pSyncNode
,
"snapshot sender too frequently, ignore"
);
return
1
;
}
...
...
@@ -794,6 +796,9 @@ int32_t syncNodeOnSnapshotReplyPre(SSyncNode *pSyncNode, SyncSnapshotRsp *pMsg)
return
-
1
;
}
// update next index
syncIndexMgrSetIndex
(
pSyncNode
->
pNextIndex
,
&
(
pMsg
->
srcId
),
snapshot
.
lastApplyIndex
+
1
);
// update seq
pSender
->
seq
=
SYNC_SNAPSHOT_SEQ_BEGIN
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录