Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
3ff366cd
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
3ff366cd
编写于
5月 23, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/feature/sync-mnode-integration' into fix/mnode
上级
5ec450d0
ee4b694a
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
101 addition
and
44 deletion
+101
-44
include/libs/sync/sync.h
include/libs/sync/sync.h
+3
-1
source/dnode/mnode/impl/src/mndSync.c
source/dnode/mnode/impl/src/mndSync.c
+17
-36
source/libs/sync/inc/syncIO.h
source/libs/sync/inc/syncIO.h
+2
-2
source/libs/sync/inc/syncInt.h
source/libs/sync/inc/syncInt.h
+5
-0
source/libs/sync/src/syncAppendEntries.c
source/libs/sync/src/syncAppendEntries.c
+23
-1
source/libs/sync/src/syncCommit.c
source/libs/sync/src/syncCommit.c
+24
-3
source/libs/sync/src/syncMain.c
source/libs/sync/src/syncMain.c
+20
-1
source/libs/sync/test/syncConfigChangeTest.cpp
source/libs/sync/test/syncConfigChangeTest.cpp
+5
-0
source/libs/sync/test/syncSnapshotTest.cpp
source/libs/sync/test/syncSnapshotTest.cpp
+2
-0
未找到文件。
include/libs/sync/sync.h
浏览文件 @
3ff366cd
...
@@ -78,6 +78,8 @@ typedef struct SFsmCbMeta {
...
@@ -78,6 +78,8 @@ typedef struct SFsmCbMeta {
int32_t
code
;
int32_t
code
;
ESyncState
state
;
ESyncState
state
;
uint64_t
seqNum
;
uint64_t
seqNum
;
SyncTerm
term
;
SyncTerm
currentTerm
;
}
SFsmCbMeta
;
}
SFsmCbMeta
;
typedef
struct
SSyncFSM
{
typedef
struct
SSyncFSM
{
...
@@ -85,6 +87,7 @@ typedef struct SSyncFSM {
...
@@ -85,6 +87,7 @@ typedef struct SSyncFSM {
void
(
*
FpCommitCb
)(
struct
SSyncFSM
*
pFsm
,
const
SRpcMsg
*
pMsg
,
SFsmCbMeta
cbMeta
);
void
(
*
FpCommitCb
)(
struct
SSyncFSM
*
pFsm
,
const
SRpcMsg
*
pMsg
,
SFsmCbMeta
cbMeta
);
void
(
*
FpPreCommitCb
)(
struct
SSyncFSM
*
pFsm
,
const
SRpcMsg
*
pMsg
,
SFsmCbMeta
cbMeta
);
void
(
*
FpPreCommitCb
)(
struct
SSyncFSM
*
pFsm
,
const
SRpcMsg
*
pMsg
,
SFsmCbMeta
cbMeta
);
void
(
*
FpRollBackCb
)(
struct
SSyncFSM
*
pFsm
,
const
SRpcMsg
*
pMsg
,
SFsmCbMeta
cbMeta
);
void
(
*
FpRollBackCb
)(
struct
SSyncFSM
*
pFsm
,
const
SRpcMsg
*
pMsg
,
SFsmCbMeta
cbMeta
);
void
(
*
FpRestoreFinish
)(
struct
SSyncFSM
*
pFsm
);
int32_t
(
*
FpGetSnapshot
)(
struct
SSyncFSM
*
pFsm
,
SSnapshot
*
pSnapshot
);
int32_t
(
*
FpGetSnapshot
)(
struct
SSyncFSM
*
pFsm
,
SSnapshot
*
pSnapshot
);
int32_t
(
*
FpRestoreSnapshot
)(
struct
SSyncFSM
*
pFsm
,
const
SSnapshot
*
snapshot
);
int32_t
(
*
FpRestoreSnapshot
)(
struct
SSyncFSM
*
pFsm
,
const
SSnapshot
*
snapshot
);
}
SSyncFSM
;
}
SSyncFSM
;
...
@@ -117,7 +120,6 @@ typedef struct SSyncLogStore {
...
@@ -117,7 +120,6 @@ typedef struct SSyncLogStore {
}
SSyncLogStore
;
}
SSyncLogStore
;
typedef
struct
SSyncInfo
{
typedef
struct
SSyncInfo
{
SyncGroupId
vgId
;
SyncGroupId
vgId
;
SSyncCfg
syncCfg
;
SSyncCfg
syncCfg
;
...
...
source/dnode/mnode/impl/src/mndSync.c
浏览文件 @
3ff366cd
...
@@ -27,43 +27,37 @@ void mndSyncCommitMsg(struct SSyncFSM *pFsm, const SRpcMsg *pMsg, SFsmCbMeta cbM
...
@@ -27,43 +27,37 @@ void mndSyncCommitMsg(struct SSyncFSM *pFsm, const SRpcMsg *pMsg, SFsmCbMeta cbM
SSyncMgmt
*
pMgmt
=
&
pMnode
->
syncMgmt
;
SSyncMgmt
*
pMgmt
=
&
pMnode
->
syncMgmt
;
SSdbRaw
*
pRaw
=
pMsg
->
pCont
;
SSdbRaw
*
pRaw
=
pMsg
->
pCont
;
SSnapshot
snapshot
=
{
0
};
(
*
pFsm
->
FpGetSnapshot
)(
pFsm
,
&
snapshot
);
if
(
cbMeta
.
index
>
snapshot
.
lastApplyIndex
)
{
mTrace
(
"ver:%"
PRId64
", apply raw:%p to sdb, role:%s"
,
cbMeta
.
index
,
pRaw
,
syncStr
(
cbMeta
.
state
));
mTrace
(
"ver:%"
PRId64
", apply raw:%p to sdb, role:%s"
,
cbMeta
.
index
,
pRaw
,
syncStr
(
cbMeta
.
state
));
sdbWriteWithoutFree
(
pSdb
,
pRaw
);
sdbWriteWithoutFree
(
pSdb
,
pRaw
);
sdbSetApplyIndex
(
pSdb
,
cbMeta
.
index
);
sdbSetApplyIndex
(
pSdb
,
cbMeta
.
index
);
sdbSetApplyTerm
(
pSdb
,
cbMeta
.
term
);
if
(
cbMeta
.
state
==
TAOS_SYNC_STATE_LEADER
)
{
if
(
cbMeta
.
state
==
TAOS_SYNC_STATE_LEADER
)
{
tsem_post
(
&
pMgmt
->
syncSem
);
tsem_post
(
&
pMgmt
->
syncSem
);
}
}
}
else
{
mTrace
(
"ver:%"
PRId64
", already apply raw:%p to sdb, last:%"
PRId64
,
cbMeta
.
index
,
pRaw
,
snapshot
.
lastApplyIndex
);
}
}
static
void
mndSyncPreCommitMsg
(
SSyncFSM
*
pFsm
,
const
SRpcMsg
*
pMsg
,
SFsmCbMeta
cbMeta
)
{
// strict consistent, do nothing
}
}
static
void
mndSyncRollBackMsg
(
SSyncFSM
*
pFsm
,
const
SRpcMsg
*
pMsg
,
SFsmCbMeta
cbMeta
)
{
int32_t
mndSyncGetSnapshot
(
struct
SSyncFSM
*
pFsm
,
SSnapshot
*
pSnapshot
)
{
// strict consistent, do nothing
}
static
int32_t
mndSyncGetSnapshot
(
SSyncFSM
*
pFsm
,
SSnapshot
*
pSnapshot
)
{
SMnode
*
pMnode
=
pFsm
->
data
;
SMnode
*
pMnode
=
pFsm
->
data
;
pSnapshot
->
lastApplyIndex
=
sdbGetApplyIndex
(
pMnode
->
pSdb
);
pSnapshot
->
lastApplyIndex
=
sdbGetApplyIndex
(
pMnode
->
pSdb
);
pSnapshot
->
lastApplyTerm
=
sdbGetApplyTerm
(
pMnode
->
pSdb
);
pSnapshot
->
lastApplyTerm
=
sdbGetApplyTerm
(
pMnode
->
pSdb
);
return
0
;
return
0
;
}
}
void
mndRestoreFinish
(
struct
SSyncFSM
*
pFsm
)
{
SMnode
*
pMnode
=
pFsm
->
data
;
mndTransPullup
(
pMnode
);
pMnode
->
syncMgmt
.
restored
=
true
;
}
SSyncFSM
*
mndSyncMakeFsm
(
SMnode
*
pMnode
)
{
SSyncFSM
*
mndSyncMakeFsm
(
SMnode
*
pMnode
)
{
SSyncFSM
*
pFsm
=
taosMemoryCalloc
(
1
,
sizeof
(
SSyncFSM
));
SSyncFSM
*
pFsm
=
taosMemoryCalloc
(
1
,
sizeof
(
SSyncFSM
));
pFsm
->
data
=
pMnode
;
pFsm
->
data
=
pMnode
;
pFsm
->
FpCommitCb
=
mndSyncCommitMsg
;
pFsm
->
FpCommitCb
=
mndSyncCommitMsg
;
pFsm
->
FpPreCommitCb
=
mndSyncPreCommitMsg
;
pFsm
->
FpPreCommitCb
=
NULL
;
pFsm
->
FpRollBackCb
=
mndSyncRollBackMsg
;
pFsm
->
FpRollBackCb
=
NULL
;
pFsm
->
FpGetSnapshot
=
mndSyncGetSnapshot
;
pFsm
->
FpGetSnapshot
=
mndSyncGetSnapshot
;
pFsm
->
FpRestoreFinish
=
mndRestoreFinish
;
pFsm
->
FpRestoreSnapshot
=
NULL
;
return
pFsm
;
return
pFsm
;
}
}
...
@@ -152,21 +146,8 @@ int32_t mndSyncPropose(SMnode *pMnode, SSdbRaw *pRaw) {
...
@@ -152,21 +146,8 @@ int32_t mndSyncPropose(SMnode *pMnode, SSdbRaw *pRaw) {
}
}
void
mndSyncStart
(
SMnode
*
pMnode
)
{
void
mndSyncStart
(
SMnode
*
pMnode
)
{
SSdb
*
pSdb
=
pMnode
->
pSdb
;
int64_t
lastApplyIndex
=
sdbGetApplyIndex
(
pSdb
);
syncSetMsgCb
(
pMnode
->
syncMgmt
.
sync
,
&
pMnode
->
msgCb
);
syncSetMsgCb
(
pMnode
->
syncMgmt
.
sync
,
&
pMnode
->
msgCb
);
syncStart
(
pMnode
->
syncMgmt
.
sync
);
syncStart
(
pMnode
->
syncMgmt
.
sync
);
int64_t
applyIndex
=
sdbGetApplyIndex
(
pSdb
);
mndTransPullup
(
pMnode
);
mDebug
(
"pullup trans finished, applyIndex:%"
PRId64
,
applyIndex
);
if
(
applyIndex
!=
lastApplyIndex
)
{
mInfo
(
"sdb restored from %"
PRId64
" to %"
PRId64
", write file"
,
lastApplyIndex
,
applyIndex
);
sdbWriteFile
(
pSdb
);
}
pMnode
->
syncMgmt
.
restored
=
true
;
mDebug
(
"sync:%"
PRId64
" is started"
,
pMnode
->
syncMgmt
.
sync
);
mDebug
(
"sync:%"
PRId64
" is started"
,
pMnode
->
syncMgmt
.
sync
);
}
}
...
...
source/libs/sync/inc/syncIO.h
浏览文件 @
3ff366cd
...
@@ -36,8 +36,8 @@ typedef struct SSyncIO {
...
@@ -36,8 +36,8 @@ typedef struct SSyncIO {
STaosQueue
*
pMsgQ
;
STaosQueue
*
pMsgQ
;
STaosQset
*
pQset
;
STaosQset
*
pQset
;
TdThread
consumerTid
;
TdThread
consumerTid
;
void
*
serverRpc
;
void
*
serverRpc
;
void
*
clientRpc
;
void
*
clientRpc
;
SEpSet
myAddr
;
SEpSet
myAddr
;
SMsgCb
msgcb
;
SMsgCb
msgcb
;
...
...
source/libs/sync/inc/syncInt.h
浏览文件 @
3ff366cd
...
@@ -147,6 +147,11 @@ typedef struct SSyncNode {
...
@@ -147,6 +147,11 @@ typedef struct SSyncNode {
// tools
// tools
SSyncRespMgr
*
pSyncRespMgr
;
SSyncRespMgr
*
pSyncRespMgr
;
// restore state
bool
restoreFinish
;
sem_t
restoreSem
;
SSnapshot
*
pSnapshot
;
}
SSyncNode
;
}
SSyncNode
;
// open/close --------------
// open/close --------------
...
...
source/libs/sync/src/syncAppendEntries.c
浏览文件 @
3ff366cd
...
@@ -324,7 +324,6 @@ int32_t syncNodeOnAppendEntriesCb(SSyncNode* ths, SyncAppendEntries* pMsg) {
...
@@ -324,7 +324,6 @@ int32_t syncNodeOnAppendEntriesCb(SSyncNode* ths, SyncAppendEntries* pMsg) {
SRpcMsg
rpcMsg
;
SRpcMsg
rpcMsg
;
syncEntry2OriginalRpc
(
pEntry
,
&
rpcMsg
);
syncEntry2OriginalRpc
(
pEntry
,
&
rpcMsg
);
// if (ths->pFsm->FpCommitCb != NULL && pEntry->originalRpcType != TDMT_VND_SYNC_NOOP) {
if
(
ths
->
pFsm
->
FpCommitCb
!=
NULL
&&
syncUtilUserCommit
(
pEntry
->
originalRpcType
))
{
if
(
ths
->
pFsm
->
FpCommitCb
!=
NULL
&&
syncUtilUserCommit
(
pEntry
->
originalRpcType
))
{
SFsmCbMeta
cbMeta
;
SFsmCbMeta
cbMeta
;
cbMeta
.
index
=
pEntry
->
index
;
cbMeta
.
index
=
pEntry
->
index
;
...
@@ -332,7 +331,18 @@ int32_t syncNodeOnAppendEntriesCb(SSyncNode* ths, SyncAppendEntries* pMsg) {
...
@@ -332,7 +331,18 @@ int32_t syncNodeOnAppendEntriesCb(SSyncNode* ths, SyncAppendEntries* pMsg) {
cbMeta
.
code
=
0
;
cbMeta
.
code
=
0
;
cbMeta
.
state
=
ths
->
state
;
cbMeta
.
state
=
ths
->
state
;
cbMeta
.
seqNum
=
pEntry
->
seqNum
;
cbMeta
.
seqNum
=
pEntry
->
seqNum
;
cbMeta
.
term
=
pEntry
->
term
;
cbMeta
.
currentTerm
=
ths
->
pRaftStore
->
currentTerm
;
ths
->
pFsm
->
FpCommitCb
(
ths
->
pFsm
,
&
rpcMsg
,
cbMeta
);
ths
->
pFsm
->
FpCommitCb
(
ths
->
pFsm
,
&
rpcMsg
,
cbMeta
);
bool
needExecute
=
true
;
if
(
ths
->
pSnapshot
!=
NULL
&&
cbMeta
.
index
<=
ths
->
pSnapshot
->
lastApplyIndex
)
{
needExecute
=
false
;
}
if
(
needExecute
)
{
ths
->
pFsm
->
FpCommitCb
(
ths
->
pFsm
,
&
rpcMsg
,
cbMeta
);
}
}
}
// config change
// config change
...
@@ -349,6 +359,18 @@ int32_t syncNodeOnAppendEntriesCb(SSyncNode* ths, SyncAppendEntries* pMsg) {
...
@@ -349,6 +359,18 @@ int32_t syncNodeOnAppendEntriesCb(SSyncNode* ths, SyncAppendEntries* pMsg) {
}
}
}
}
// restore finish
if
(
pEntry
->
index
==
ths
->
pLogStore
->
getLastIndex
(
ths
->
pLogStore
))
{
if
(
ths
->
restoreFinish
==
false
)
{
if
(
ths
->
pFsm
->
FpRestoreFinish
!=
NULL
)
{
ths
->
pFsm
->
FpRestoreFinish
(
ths
->
pFsm
);
}
ths
->
restoreFinish
=
true
;
tsem_post
(
&
ths
->
restoreSem
);
}
}
rpcFreeCont
(
rpcMsg
.
pCont
);
rpcFreeCont
(
rpcMsg
.
pCont
);
syncEntryDestory
(
pEntry
);
syncEntryDestory
(
pEntry
);
}
}
...
...
source/libs/sync/src/syncCommit.c
浏览文件 @
3ff366cd
...
@@ -102,7 +102,6 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
...
@@ -102,7 +102,6 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
SRpcMsg
rpcMsg
;
SRpcMsg
rpcMsg
;
syncEntry2OriginalRpc
(
pEntry
,
&
rpcMsg
);
syncEntry2OriginalRpc
(
pEntry
,
&
rpcMsg
);
// if (pSyncNode->pFsm->FpCommitCb != NULL && pEntry->originalRpcType != TDMT_VND_SYNC_NOOP) {
if
(
pSyncNode
->
pFsm
->
FpCommitCb
!=
NULL
&&
syncUtilUserCommit
(
pEntry
->
originalRpcType
))
{
if
(
pSyncNode
->
pFsm
->
FpCommitCb
!=
NULL
&&
syncUtilUserCommit
(
pEntry
->
originalRpcType
))
{
SFsmCbMeta
cbMeta
;
SFsmCbMeta
cbMeta
;
cbMeta
.
index
=
pEntry
->
index
;
cbMeta
.
index
=
pEntry
->
index
;
...
@@ -110,8 +109,18 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
...
@@ -110,8 +109,18 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
cbMeta
.
code
=
0
;
cbMeta
.
code
=
0
;
cbMeta
.
state
=
pSyncNode
->
state
;
cbMeta
.
state
=
pSyncNode
->
state
;
cbMeta
.
seqNum
=
pEntry
->
seqNum
;
cbMeta
.
seqNum
=
pEntry
->
seqNum
;
cbMeta
.
term
=
pEntry
->
term
;
cbMeta
.
currentTerm
=
pSyncNode
->
pRaftStore
->
currentTerm
;
bool
needExecute
=
true
;
if
(
pSyncNode
->
pSnapshot
!=
NULL
&&
cbMeta
.
index
<=
pSyncNode
->
pSnapshot
->
lastApplyIndex
)
{
needExecute
=
false
;
}
if
(
needExecute
)
{
pSyncNode
->
pFsm
->
FpCommitCb
(
pSyncNode
->
pFsm
,
&
rpcMsg
,
cbMeta
);
pSyncNode
->
pFsm
->
FpCommitCb
(
pSyncNode
->
pFsm
,
&
rpcMsg
,
cbMeta
);
}
}
}
// config change
// config change
if
(
pEntry
->
originalRpcType
==
TDMT_VND_SYNC_CONFIG_CHANGE
)
{
if
(
pEntry
->
originalRpcType
==
TDMT_VND_SYNC_CONFIG_CHANGE
)
{
...
@@ -127,6 +136,18 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
...
@@ -127,6 +136,18 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
}
}
}
}
// restore finish
if
(
pEntry
->
index
==
pSyncNode
->
pLogStore
->
getLastIndex
(
pSyncNode
->
pLogStore
))
{
if
(
pSyncNode
->
restoreFinish
==
false
)
{
if
(
pSyncNode
->
pFsm
->
FpRestoreFinish
!=
NULL
)
{
pSyncNode
->
pFsm
->
FpRestoreFinish
(
pSyncNode
->
pFsm
);
}
pSyncNode
->
restoreFinish
=
true
;
tsem_post
(
&
pSyncNode
->
restoreSem
);
}
}
rpcFreeCont
(
rpcMsg
.
pCont
);
rpcFreeCont
(
rpcMsg
.
pCont
);
syncEntryDestory
(
pEntry
);
syncEntryDestory
(
pEntry
);
}
}
...
...
source/libs/sync/src/syncMain.c
浏览文件 @
3ff366cd
...
@@ -242,7 +242,7 @@ int32_t syncGetAndDelRespRpc(int64_t rid, uint64_t index, SRpcMsg* msg) {
...
@@ -242,7 +242,7 @@ int32_t syncGetAndDelRespRpc(int64_t rid, uint64_t index, SRpcMsg* msg) {
return
ret
;
return
ret
;
}
}
void
syncSetMsgCb
(
int64_t
rid
,
const
SMsgCb
*
msgcb
)
{
void
syncSetMsgCb
(
int64_t
rid
,
const
SMsgCb
*
msgcb
)
{
SSyncNode
*
pSyncNode
=
(
SSyncNode
*
)
taosAcquireRef
(
tsNodeRefId
,
rid
);
SSyncNode
*
pSyncNode
=
(
SSyncNode
*
)
taosAcquireRef
(
tsNodeRefId
,
rid
);
if
(
pSyncNode
==
NULL
)
{
if
(
pSyncNode
==
NULL
)
{
sTrace
(
"syncSetQ get pSyncNode is NULL, rid:%ld"
,
rid
);
sTrace
(
"syncSetQ get pSyncNode is NULL, rid:%ld"
,
rid
);
...
@@ -492,6 +492,15 @@ SSyncNode* syncNodeOpen(const SSyncInfo* pSyncInfo) {
...
@@ -492,6 +492,15 @@ SSyncNode* syncNodeOpen(const SSyncInfo* pSyncInfo) {
pSyncNode
->
pSyncRespMgr
=
syncRespMgrCreate
(
NULL
,
0
);
pSyncNode
->
pSyncRespMgr
=
syncRespMgrCreate
(
NULL
,
0
);
assert
(
pSyncNode
->
pSyncRespMgr
!=
NULL
);
assert
(
pSyncNode
->
pSyncRespMgr
!=
NULL
);
// restore state
pSyncNode
->
restoreFinish
=
false
;
pSyncNode
->
pSnapshot
=
NULL
;
if
(
pSyncNode
->
pFsm
->
FpGetSnapshot
!=
NULL
)
{
pSyncNode
->
pSnapshot
=
taosMemoryMalloc
(
sizeof
(
SSnapshot
));
pSyncNode
->
pFsm
->
FpGetSnapshot
(
pSyncNode
->
pFsm
,
pSyncNode
->
pSnapshot
);
}
tsem_init
(
&
(
pSyncNode
->
restoreSem
),
0
,
0
);
// start in syncNodeStart
// start in syncNodeStart
// start raft
// start raft
// syncNodeBecomeFollower(pSyncNode);
// syncNodeBecomeFollower(pSyncNode);
...
@@ -511,6 +520,8 @@ void syncNodeStart(SSyncNode* pSyncNode) {
...
@@ -511,6 +520,8 @@ void syncNodeStart(SSyncNode* pSyncNode) {
// use this now
// use this now
syncNodeAppendNoop
(
pSyncNode
);
syncNodeAppendNoop
(
pSyncNode
);
syncMaybeAdvanceCommitIndex
(
pSyncNode
);
// maybe only one replica
syncMaybeAdvanceCommitIndex
(
pSyncNode
);
// maybe only one replica
tsem_wait
(
&
pSyncNode
->
restoreSem
);
return
;
return
;
}
}
...
@@ -520,6 +531,8 @@ void syncNodeStart(SSyncNode* pSyncNode) {
...
@@ -520,6 +531,8 @@ void syncNodeStart(SSyncNode* pSyncNode) {
int32_t
ret
=
0
;
int32_t
ret
=
0
;
// ret = syncNodeStartPingTimer(pSyncNode);
// ret = syncNodeStartPingTimer(pSyncNode);
assert
(
ret
==
0
);
assert
(
ret
==
0
);
tsem_wait
(
&
pSyncNode
->
restoreSem
);
}
}
void
syncNodeStartStandBy
(
SSyncNode
*
pSyncNode
)
{
void
syncNodeStartStandBy
(
SSyncNode
*
pSyncNode
)
{
...
@@ -556,6 +569,12 @@ void syncNodeClose(SSyncNode* pSyncNode) {
...
@@ -556,6 +569,12 @@ void syncNodeClose(SSyncNode* pSyncNode) {
taosMemoryFree
(
pSyncNode
->
pFsm
);
taosMemoryFree
(
pSyncNode
->
pFsm
);
}
}
if
(
pSyncNode
->
pSnapshot
!=
NULL
)
{
taosMemoryFree
(
pSyncNode
->
pSnapshot
);
}
tsem_destroy
(
&
pSyncNode
->
restoreSem
);
// free memory in syncFreeNode
// free memory in syncFreeNode
// taosMemoryFree(pSyncNode);
// taosMemoryFree(pSyncNode);
}
}
...
...
source/libs/sync/test/syncConfigChangeTest.cpp
浏览文件 @
3ff366cd
...
@@ -73,12 +73,17 @@ int32_t GetSnapshotCb(struct SSyncFSM* pFsm, SSnapshot* pSnapshot) {
...
@@ -73,12 +73,17 @@ int32_t GetSnapshotCb(struct SSyncFSM* pFsm, SSnapshot* pSnapshot) {
return
0
;
return
0
;
}
}
void
FpRestoreFinishCb
(
struct
SSyncFSM
*
pFsm
)
{
sTrace
(
"==callback== ==FpRestoreFinishCb=="
);
}
SSyncFSM
*
createFsm
()
{
SSyncFSM
*
createFsm
()
{
SSyncFSM
*
pFsm
=
(
SSyncFSM
*
)
taosMemoryMalloc
(
sizeof
(
SSyncFSM
));
SSyncFSM
*
pFsm
=
(
SSyncFSM
*
)
taosMemoryMalloc
(
sizeof
(
SSyncFSM
));
pFsm
->
FpCommitCb
=
CommitCb
;
pFsm
->
FpCommitCb
=
CommitCb
;
pFsm
->
FpPreCommitCb
=
PreCommitCb
;
pFsm
->
FpPreCommitCb
=
PreCommitCb
;
pFsm
->
FpRollBackCb
=
RollBackCb
;
pFsm
->
FpRollBackCb
=
RollBackCb
;
pFsm
->
FpGetSnapshot
=
GetSnapshotCb
;
pFsm
->
FpGetSnapshot
=
GetSnapshotCb
;
pFsm
->
FpRestoreFinish
=
FpRestoreFinishCb
;
return
pFsm
;
return
pFsm
;
}
}
...
...
source/libs/sync/test/syncSnapshotTest.cpp
浏览文件 @
3ff366cd
...
@@ -160,6 +160,8 @@ SyncClientRequest *step1(const SRpcMsg *pMsg) {
...
@@ -160,6 +160,8 @@ SyncClientRequest *step1(const SRpcMsg *pMsg) {
}
}
int
main
(
int
argc
,
char
**
argv
)
{
int
main
(
int
argc
,
char
**
argv
)
{
sprintf
(
tsTempDir
,
"%s"
,
"."
);
// taosInitLog((char *)"syncTest.log", 100000, 10);
// taosInitLog((char *)"syncTest.log", 100000, 10);
tsAsyncLog
=
0
;
tsAsyncLog
=
0
;
sDebugFlag
=
143
+
64
;
sDebugFlag
=
143
+
64
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录