Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
92584d13
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,发现更多精彩内容 >>
提交
92584d13
编写于
10月 21, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'feature/sync2-merge' of
https://github.com/taosdata/TDengine
into feature/sync2-merge
上级
c6bbd189
b492082a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
50 addition
and
9 deletion
+50
-9
source/libs/sync/inc/syncInt.h
source/libs/sync/inc/syncInt.h
+1
-0
source/libs/sync/src/syncCommit.c
source/libs/sync/src/syncCommit.c
+2
-0
source/libs/sync/src/syncMain.c
source/libs/sync/src/syncMain.c
+43
-7
source/libs/sync/src/syncReplication.c
source/libs/sync/src/syncReplication.c
+4
-2
未找到文件。
source/libs/sync/inc/syncInt.h
浏览文件 @
92584d13
...
@@ -248,6 +248,7 @@ char* syncNode2SimpleStr(const SSyncNode* pSyncNode);
...
@@ -248,6 +248,7 @@ char* syncNode2SimpleStr(const SSyncNode* pSyncNode);
bool
syncNodeInConfig
(
SSyncNode
*
pSyncNode
,
const
SSyncCfg
*
config
);
bool
syncNodeInConfig
(
SSyncNode
*
pSyncNode
,
const
SSyncCfg
*
config
);
void
syncNodeDoConfigChange
(
SSyncNode
*
pSyncNode
,
SSyncCfg
*
newConfig
,
SyncIndex
lastConfigChangeIndex
);
void
syncNodeDoConfigChange
(
SSyncNode
*
pSyncNode
,
SSyncCfg
*
newConfig
,
SyncIndex
lastConfigChangeIndex
);
SyncIndex
syncMinMatchIndex
(
SSyncNode
*
pSyncNode
);
SyncIndex
syncMinMatchIndex
(
SSyncNode
*
pSyncNode
);
char
*
syncNodePeerState2Str
(
const
SSyncNode
*
pSyncNode
);
SSyncNode
*
syncNodeAcquire
(
int64_t
rid
);
SSyncNode
*
syncNodeAcquire
(
int64_t
rid
);
void
syncNodeRelease
(
SSyncNode
*
pNode
);
void
syncNodeRelease
(
SSyncNode
*
pNode
);
...
...
source/libs/sync/src/syncCommit.c
浏览文件 @
92584d13
...
@@ -170,6 +170,8 @@ static inline int64_t syncNodeAbs64(int64_t a, int64_t b) {
...
@@ -170,6 +170,8 @@ static inline int64_t syncNodeAbs64(int64_t a, int64_t b) {
}
}
int32_t
syncNodeDynamicQuorum
(
const
SSyncNode
*
pSyncNode
)
{
int32_t
syncNodeDynamicQuorum
(
const
SSyncNode
*
pSyncNode
)
{
return
pSyncNode
->
quorum
;
int32_t
quorum
=
1
;
// self
int32_t
quorum
=
1
;
// self
int64_t
timeNow
=
taosGetTimestampMs
();
int64_t
timeNow
=
taosGetTimestampMs
();
...
...
source/libs/sync/src/syncMain.c
浏览文件 @
92584d13
...
@@ -322,6 +322,38 @@ SyncIndex syncMinMatchIndex(SSyncNode* pSyncNode) {
...
@@ -322,6 +322,38 @@ SyncIndex syncMinMatchIndex(SSyncNode* pSyncNode) {
return
minMatchIndex
;
return
minMatchIndex
;
}
}
char
*
syncNodePeerState2Str
(
const
SSyncNode
*
pSyncNode
)
{
int32_t
len
=
128
;
int32_t
useLen
=
0
;
int32_t
leftLen
=
len
-
useLen
;
char
*
pStr
=
taosMemoryMalloc
(
len
);
memset
(
pStr
,
0
,
len
);
char
*
p
=
pStr
;
int32_t
use
=
snprintf
(
p
,
leftLen
,
"{"
);
useLen
+=
use
;
leftLen
-=
use
;
for
(
int32_t
i
=
0
;
i
<
pSyncNode
->
replicaNum
;
++
i
)
{
SPeerState
*
pState
=
syncNodeGetPeerState
((
SSyncNode
*
)
pSyncNode
,
&
(
pSyncNode
->
replicasId
[
i
]));
ASSERT
(
pState
!=
NULL
);
p
=
pStr
+
useLen
;
use
=
snprintf
(
p
,
leftLen
,
"%d:%ld,%ld, "
,
i
,
pState
->
lastSendIndex
,
pState
->
lastSendTime
);
useLen
+=
use
;
leftLen
-=
use
;
}
p
=
pStr
+
useLen
;
use
=
snprintf
(
p
,
leftLen
,
"}"
);
useLen
+=
use
;
leftLen
-=
use
;
// sTrace("vgId:%d, ------------------ syncNodePeerState2Str:%s", pSyncNode->vgId, pStr);
return
pStr
;
}
int32_t
syncBeginSnapshot
(
int64_t
rid
,
int64_t
lastApplyIndex
)
{
int32_t
syncBeginSnapshot
(
int64_t
rid
,
int64_t
lastApplyIndex
)
{
SSyncNode
*
pSyncNode
=
(
SSyncNode
*
)
taosAcquireRef
(
tsNodeRefId
,
rid
);
SSyncNode
*
pSyncNode
=
(
SSyncNode
*
)
taosAcquireRef
(
tsNodeRefId
,
rid
);
if
(
pSyncNode
==
NULL
)
{
if
(
pSyncNode
==
NULL
)
{
...
@@ -1825,8 +1857,6 @@ char* syncNode2Str(const SSyncNode* pSyncNode) {
...
@@ -1825,8 +1857,6 @@ char* syncNode2Str(const SSyncNode* pSyncNode) {
}
}
inline
void
syncNodeEventLog
(
const
SSyncNode
*
pSyncNode
,
char
*
str
)
{
inline
void
syncNodeEventLog
(
const
SSyncNode
*
pSyncNode
,
char
*
str
)
{
int32_t
userStrLen
=
strlen
(
str
);
SSnapshot
snapshot
=
{.
data
=
NULL
,
.
lastApplyIndex
=
-
1
,
.
lastApplyTerm
=
0
};
SSnapshot
snapshot
=
{.
data
=
NULL
,
.
lastApplyIndex
=
-
1
,
.
lastApplyTerm
=
0
};
if
(
pSyncNode
->
pFsm
!=
NULL
&&
pSyncNode
->
pFsm
->
FpGetSnapshotInfo
!=
NULL
)
{
if
(
pSyncNode
->
pFsm
!=
NULL
&&
pSyncNode
->
pFsm
->
FpGetSnapshotInfo
!=
NULL
)
{
pSyncNode
->
pFsm
->
FpGetSnapshotInfo
(
pSyncNode
->
pFsm
,
&
snapshot
);
pSyncNode
->
pFsm
->
FpGetSnapshotInfo
(
pSyncNode
->
pFsm
,
&
snapshot
);
...
@@ -1845,6 +1875,9 @@ inline void syncNodeEventLog(const SSyncNode* pSyncNode, char* str) {
...
@@ -1845,6 +1875,9 @@ inline void syncNodeEventLog(const SSyncNode* pSyncNode, char* str) {
printStr
=
pCfgStr
;
printStr
=
pCfgStr
;
}
}
char
*
peerStateStr
=
syncNodePeerState2Str
(
pSyncNode
);
int32_t
userStrLen
=
strlen
(
str
)
+
strlen
(
peerStateStr
);
if
(
userStrLen
<
256
)
{
if
(
userStrLen
<
256
)
{
char
logBuf
[
256
+
256
];
char
logBuf
[
256
+
256
];
if
(
pSyncNode
!=
NULL
&&
pSyncNode
->
pRaftCfg
!=
NULL
&&
pSyncNode
->
pRaftStore
!=
NULL
)
{
if
(
pSyncNode
!=
NULL
&&
pSyncNode
->
pRaftCfg
!=
NULL
&&
pSyncNode
->
pRaftStore
!=
NULL
)
{
...
@@ -1854,13 +1887,13 @@ inline void syncNodeEventLog(const SSyncNode* pSyncNode, char* str) {
...
@@ -1854,13 +1887,13 @@ inline void syncNodeEventLog(const SSyncNode* pSyncNode, char* str) {
", sby:%d, "
", sby:%d, "
"stgy:%d, bch:%d, "
"stgy:%d, bch:%d, "
"r-num:%d, "
"r-num:%d, "
"lcfg:%"
PRId64
", chging:%d, rsto:%d, dquorum:%d, elt:%"
PRId64
", hb:%"
PRId64
", %s"
,
"lcfg:%"
PRId64
", chging:%d, rsto:%d, dquorum:%d, elt:%"
PRId64
", hb:%"
PRId64
", %s
, %s
"
,
pSyncNode
->
vgId
,
syncUtilState2String
(
pSyncNode
->
state
),
str
,
pSyncNode
->
pRaftStore
->
currentTerm
,
pSyncNode
->
vgId
,
syncUtilState2String
(
pSyncNode
->
state
),
str
,
pSyncNode
->
pRaftStore
->
currentTerm
,
pSyncNode
->
commitIndex
,
logBeginIndex
,
logLastIndex
,
pSyncNode
->
minMatchIndex
,
snapshot
.
lastApplyIndex
,
pSyncNode
->
commitIndex
,
logBeginIndex
,
logLastIndex
,
pSyncNode
->
minMatchIndex
,
snapshot
.
lastApplyIndex
,
snapshot
.
lastApplyTerm
,
pSyncNode
->
pRaftCfg
->
isStandBy
,
pSyncNode
->
pRaftCfg
->
snapshotStrategy
,
snapshot
.
lastApplyTerm
,
pSyncNode
->
pRaftCfg
->
isStandBy
,
pSyncNode
->
pRaftCfg
->
snapshotStrategy
,
pSyncNode
->
pRaftCfg
->
batchSize
,
pSyncNode
->
replicaNum
,
pSyncNode
->
pRaftCfg
->
lastConfigIndex
,
pSyncNode
->
pRaftCfg
->
batchSize
,
pSyncNode
->
replicaNum
,
pSyncNode
->
pRaftCfg
->
lastConfigIndex
,
pSyncNode
->
changing
,
pSyncNode
->
restoreFinish
,
syncNodeDynamicQuorum
(
pSyncNode
),
pSyncNode
->
changing
,
pSyncNode
->
restoreFinish
,
syncNodeDynamicQuorum
(
pSyncNode
),
pSyncNode
->
electTimerLogicClockUser
,
pSyncNode
->
heartbeatTimerLogicClockUser
,
printStr
);
pSyncNode
->
electTimerLogicClockUser
,
pSyncNode
->
heartbeatTimerLogicClockUser
,
p
eerStateStr
,
p
rintStr
);
}
else
{
}
else
{
snprintf
(
logBuf
,
sizeof
(
logBuf
),
"%s"
,
str
);
snprintf
(
logBuf
,
sizeof
(
logBuf
),
"%s"
,
str
);
}
}
...
@@ -1878,19 +1911,20 @@ inline void syncNodeEventLog(const SSyncNode* pSyncNode, char* str) {
...
@@ -1878,19 +1911,20 @@ inline void syncNodeEventLog(const SSyncNode* pSyncNode, char* str) {
", sby:%d, "
", sby:%d, "
"stgy:%d, bch:%d, "
"stgy:%d, bch:%d, "
"r-num:%d, "
"r-num:%d, "
"lcfg:%"
PRId64
", chging:%d, rsto:%d, dquorum:%d, elt:%"
PRId64
", hb:%"
PRId64
", %s"
,
"lcfg:%"
PRId64
", chging:%d, rsto:%d, dquorum:%d, elt:%"
PRId64
", hb:%"
PRId64
", %s
, %s
"
,
pSyncNode
->
vgId
,
syncUtilState2String
(
pSyncNode
->
state
),
str
,
pSyncNode
->
pRaftStore
->
currentTerm
,
pSyncNode
->
vgId
,
syncUtilState2String
(
pSyncNode
->
state
),
str
,
pSyncNode
->
pRaftStore
->
currentTerm
,
pSyncNode
->
commitIndex
,
logBeginIndex
,
logLastIndex
,
pSyncNode
->
minMatchIndex
,
snapshot
.
lastApplyIndex
,
pSyncNode
->
commitIndex
,
logBeginIndex
,
logLastIndex
,
pSyncNode
->
minMatchIndex
,
snapshot
.
lastApplyIndex
,
snapshot
.
lastApplyTerm
,
pSyncNode
->
pRaftCfg
->
isStandBy
,
pSyncNode
->
pRaftCfg
->
snapshotStrategy
,
snapshot
.
lastApplyTerm
,
pSyncNode
->
pRaftCfg
->
isStandBy
,
pSyncNode
->
pRaftCfg
->
snapshotStrategy
,
pSyncNode
->
pRaftCfg
->
batchSize
,
pSyncNode
->
replicaNum
,
pSyncNode
->
pRaftCfg
->
lastConfigIndex
,
pSyncNode
->
pRaftCfg
->
batchSize
,
pSyncNode
->
replicaNum
,
pSyncNode
->
pRaftCfg
->
lastConfigIndex
,
pSyncNode
->
changing
,
pSyncNode
->
restoreFinish
,
syncNodeDynamicQuorum
(
pSyncNode
),
pSyncNode
->
changing
,
pSyncNode
->
restoreFinish
,
syncNodeDynamicQuorum
(
pSyncNode
),
pSyncNode
->
electTimerLogicClockUser
,
pSyncNode
->
heartbeatTimerLogicClockUser
,
printStr
);
pSyncNode
->
electTimerLogicClockUser
,
pSyncNode
->
heartbeatTimerLogicClockUser
,
p
eerStateStr
,
p
rintStr
);
}
else
{
}
else
{
snprintf
(
s
,
len
,
"%s"
,
str
);
snprintf
(
s
,
len
,
"%s"
,
str
);
}
}
// sDebug("%s", s);
// sDebug("%s", s);
// sInfo("%s", s);
// sInfo("%s", s);
sTrace
(
"%s"
,
s
);
sTrace
(
"%s"
,
s
);
taosMemoryFree
(
peerStateStr
);
taosMemoryFree
(
s
);
taosMemoryFree
(
s
);
}
}
...
@@ -3441,7 +3475,9 @@ SPeerState* syncNodeGetPeerState(SSyncNode* ths, const SRaftId* pDestId) {
...
@@ -3441,7 +3475,9 @@ SPeerState* syncNodeGetPeerState(SSyncNode* ths, const SRaftId* pDestId) {
bool
syncNodeNeedSendAppendEntries
(
SSyncNode
*
ths
,
const
SRaftId
*
pDestId
,
const
SyncAppendEntries
*
pMsg
)
{
bool
syncNodeNeedSendAppendEntries
(
SSyncNode
*
ths
,
const
SRaftId
*
pDestId
,
const
SyncAppendEntries
*
pMsg
)
{
SPeerState
*
pState
=
syncNodeGetPeerState
(
ths
,
pDestId
);
SPeerState
*
pState
=
syncNodeGetPeerState
(
ths
,
pDestId
);
ASSERT
(
pState
!=
NULL
);
if
(
pState
==
NULL
)
{
return
false
;
}
SyncIndex
sendIndex
=
pMsg
->
prevLogIndex
+
1
;
SyncIndex
sendIndex
=
pMsg
->
prevLogIndex
+
1
;
int64_t
tsNow
=
taosGetTimestampMs
();
int64_t
tsNow
=
taosGetTimestampMs
();
...
...
source/libs/sync/src/syncReplication.c
浏览文件 @
92584d13
...
@@ -165,8 +165,10 @@ int32_t syncNodeSendAppendEntries(SSyncNode* pSyncNode, const SRaftId* destRaftI
...
@@ -165,8 +165,10 @@ int32_t syncNodeSendAppendEntries(SSyncNode* pSyncNode, const SRaftId* destRaftI
SPeerState
*
pState
=
syncNodeGetPeerState
(
pSyncNode
,
destRaftId
);
SPeerState
*
pState
=
syncNodeGetPeerState
(
pSyncNode
,
destRaftId
);
ASSERT
(
pState
!=
NULL
);
ASSERT
(
pState
!=
NULL
);
pState
->
lastSendIndex
=
pMsg
->
prevLogIndex
+
1
;
if
(
pMsg
->
dataLen
>
0
)
{
pState
->
lastSendTime
=
taosGetTimestampMs
();
pState
->
lastSendIndex
=
pMsg
->
prevLogIndex
+
1
;
pState
->
lastSendTime
=
taosGetTimestampMs
();
}
return
ret
;
return
ret
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录