Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
0f9cd430
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
0f9cd430
编写于
5月 20, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: adjust sync header file
上级
dbaa7446
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
50 addition
and
176 deletion
+50
-176
include/libs/sync/sync.h
include/libs/sync/sync.h
+21
-47
include/libs/sync/syncTools.h
include/libs/sync/syncTools.h
+0
-6
source/libs/sync/inc/syncInt.h
source/libs/sync/inc/syncInt.h
+29
-123
未找到文件。
include/libs/sync/sync.h
浏览文件 @
0f9cd430
...
@@ -20,17 +20,23 @@
...
@@ -20,17 +20,23 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
#include "os.h"
#include "cJSON.h"
#include "cJSON.h"
#include "tdef.h"
#include "tdef.h"
#include "tmsgcb.h"
#include "tmsgcb.h"
#define SYNC_INDEX_BEGIN 0
#define SYNC_INDEX_INVALID -1
typedef
uint64_t
SyncNodeId
;
typedef
uint64_t
SyncNodeId
;
typedef
int32_t
SyncGroupId
;
typedef
int32_t
SyncGroupId
;
typedef
int64_t
SyncIndex
;
typedef
int64_t
SyncIndex
;
typedef
uint64_t
SyncTerm
;
typedef
uint64_t
SyncTerm
;
typedef
struct
SSyncNode
SSyncNode
;
typedef
struct
SSyncBuffer
SSyncBuffer
;
typedef
struct
SWal
SWal
;
typedef
struct
SSyncRaftEntry
SSyncRaftEntry
;
typedef
enum
{
typedef
enum
{
TAOS_SYNC_STATE_FOLLOWER
=
100
,
TAOS_SYNC_STATE_FOLLOWER
=
100
,
TAOS_SYNC_STATE_CANDIDATE
=
101
,
TAOS_SYNC_STATE_CANDIDATE
=
101
,
...
@@ -38,6 +44,17 @@ typedef enum {
...
@@ -38,6 +44,17 @@ typedef enum {
TAOS_SYNC_STATE_ERROR
=
103
,
TAOS_SYNC_STATE_ERROR
=
103
,
}
ESyncState
;
}
ESyncState
;
typedef
enum
{
TAOS_SYNC_PROPOSE_SUCCESS
=
0
,
TAOS_SYNC_PROPOSE_NOT_LEADER
=
1
,
TAOS_SYNC_PROPOSE_OTHER_ERROR
=
2
,
}
ESyncProposeCode
;
typedef
enum
{
TAOS_SYNC_FSM_CB_SUCCESS
=
0
,
TAOS_SYNC_FSM_CB_OTHER_ERROR
=
1
,
}
ESyncFsmCbCode
;
typedef
struct
SNodeInfo
{
typedef
struct
SNodeInfo
{
uint16_t
nodePort
;
uint16_t
nodePort
;
char
nodeFqdn
[
TSDB_FQDN_LEN
];
char
nodeFqdn
[
TSDB_FQDN_LEN
];
...
@@ -55,11 +72,6 @@ typedef struct SSnapshot {
...
@@ -55,11 +72,6 @@ typedef struct SSnapshot {
SyncTerm
lastApplyTerm
;
SyncTerm
lastApplyTerm
;
}
SSnapshot
;
}
SSnapshot
;
typedef
enum
{
TAOS_SYNC_FSM_CB_SUCCESS
=
0
,
TAOS_SYNC_FSM_CB_OTHER_ERROR
,
}
ESyncFsmCbCode
;
typedef
struct
SFsmCbMeta
{
typedef
struct
SFsmCbMeta
{
SyncIndex
index
;
SyncIndex
index
;
bool
isWeak
;
bool
isWeak
;
...
@@ -68,27 +80,15 @@ typedef struct SFsmCbMeta {
...
@@ -68,27 +80,15 @@ typedef struct SFsmCbMeta {
uint64_t
seqNum
;
uint64_t
seqNum
;
}
SFsmCbMeta
;
}
SFsmCbMeta
;
struct
SRpcMsg
;
typedef
struct
SRpcMsg
SRpcMsg
;
typedef
struct
SSyncFSM
{
typedef
struct
SSyncFSM
{
void
*
data
;
void
*
data
;
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
);
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
;
struct
SSyncRaftEntry
;
typedef
struct
SSyncRaftEntry
SSyncRaftEntry
;
#define SYNC_INDEX_BEGIN 0
#define SYNC_INDEX_INVALID -1
// abstract definition of log store in raft
// abstract definition of log store in raft
// SWal implements it
// SWal implements it
typedef
struct
SSyncLogStore
{
typedef
struct
SSyncLogStore
{
...
@@ -117,11 +117,6 @@ typedef struct SSyncLogStore {
...
@@ -117,11 +117,6 @@ typedef struct SSyncLogStore {
}
SSyncLogStore
;
}
SSyncLogStore
;
struct
SWal
;
typedef
struct
SWal
SWal
;
struct
SEpSet
;
typedef
struct
SEpSet
SEpSet
;
typedef
struct
SSyncInfo
{
typedef
struct
SSyncInfo
{
SyncGroupId
vgId
;
SyncGroupId
vgId
;
...
@@ -130,10 +125,8 @@ typedef struct SSyncInfo {
...
@@ -130,10 +125,8 @@ typedef struct SSyncInfo {
SWal
*
pWal
;
SWal
*
pWal
;
SSyncFSM
*
pFsm
;
SSyncFSM
*
pFsm
;
SMsgCb
*
msgcb
;
SMsgCb
*
msgcb
;
int32_t
(
*
FpSendMsg
)(
const
SEpSet
*
pEpSet
,
SRpcMsg
*
pMsg
);
int32_t
(
*
FpSendMsg
)(
const
SEpSet
*
pEpSet
,
SRpcMsg
*
pMsg
);
int32_t
(
*
FpEqMsg
)(
const
SMsgCb
*
msgcb
,
SRpcMsg
*
pMsg
);
int32_t
(
*
FpEqMsg
)(
const
SMsgCb
*
msgcb
,
SRpcMsg
*
pMsg
);
}
SSyncInfo
;
}
SSyncInfo
;
int32_t
syncInit
();
int32_t
syncInit
();
...
@@ -148,27 +141,8 @@ const char* syncGetMyRoleStr(int64_t rid);
...
@@ -148,27 +141,8 @@ const char* syncGetMyRoleStr(int64_t rid);
SyncTerm
syncGetMyTerm
(
int64_t
rid
);
SyncTerm
syncGetMyTerm
(
int64_t
rid
);
void
syncGetEpSet
(
int64_t
rid
,
SEpSet
*
pEpSet
);
void
syncGetEpSet
(
int64_t
rid
,
SEpSet
*
pEpSet
);
int32_t
syncGetVgId
(
int64_t
rid
);
int32_t
syncGetVgId
(
int64_t
rid
);
int32_t
syncPropose
(
int64_t
rid
,
const
SRpcMsg
*
pMsg
,
bool
isWeak
);
typedef
enum
{
bool
syncEnvIsStart
();
TAOS_SYNC_PROPOSE_SUCCESS
=
0
,
TAOS_SYNC_PROPOSE_NOT_LEADER
,
TAOS_SYNC_PROPOSE_OTHER_ERROR
,
}
ESyncProposeCode
;
int32_t
syncPropose
(
int64_t
rid
,
const
SRpcMsg
*
pMsg
,
bool
isWeak
);
bool
syncEnvIsStart
();
extern
int32_t
sDebugFlag
;
//-----------------------------------------
struct
SSyncNode
;
typedef
struct
SSyncNode
SSyncNode
;
struct
SSyncBuffer
;
typedef
struct
SSyncBuffer
SSyncBuffer
;
//-----------------------------------------
const
char
*
syncStr
(
ESyncState
state
);
const
char
*
syncStr
(
ESyncState
state
);
#ifdef __cplusplus
#ifdef __cplusplus
...
...
include/libs/sync/syncTools.h
浏览文件 @
0f9cd430
...
@@ -20,9 +20,6 @@
...
@@ -20,9 +20,6 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
#include "os.h"
#include "cJSON.h"
#include "trpc.h"
#include "trpc.h"
// ------------------ ds -------------------
// ------------------ ds -------------------
...
@@ -32,9 +29,6 @@ typedef struct SRaftId {
...
@@ -32,9 +29,6 @@ typedef struct SRaftId {
}
SRaftId
;
}
SRaftId
;
// ------------------ control -------------------
// ------------------ control -------------------
struct
SSyncNode
;
typedef
struct
SSyncNode
SSyncNode
;
SSyncNode
*
syncNodeAcquire
(
int64_t
rid
);
SSyncNode
*
syncNodeAcquire
(
int64_t
rid
);
void
syncNodeRelease
(
SSyncNode
*
pNode
);
void
syncNodeRelease
(
SSyncNode
*
pNode
);
...
...
source/libs/sync/inc/syncInt.h
浏览文件 @
0f9cd430
...
@@ -20,135 +20,41 @@
...
@@ -20,135 +20,41 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
#include "sync.h"
#include "sync.h"
#include "syncTools.h"
#include "syncTools.h"
#include "taosdef.h"
#include "tglobal.h"
#include "tlog.h"
#include "tlog.h"
#include "ttimer.h"
#include "ttimer.h"
#define sFatal(...) \
// clang-format off
{ \
#define sFatal(...) do { if (sDebugFlag & DEBUG_FATAL) { taosPrintLog("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0)
if (sDebugFlag & DEBUG_FATAL) { \
#define sError(...) do { if (sDebugFlag & DEBUG_ERROR) { taosPrintLog("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0)
taosPrintLog("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \
#define sWarn(...) do { if (sDebugFlag & DEBUG_WARN) { taosPrintLog("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0)
} \
#define sInfo(...) do { if (sDebugFlag & DEBUG_INFO) { taosPrintLog("SYN ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0)
}
#define sDebug(...) do { if (sDebugFlag & DEBUG_DEBUG) { taosPrintLog("SYN ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); }} while(0)
#define sError(...) \
#define sTrace(...) do { if (sDebugFlag & DEBUG_TRACE) { taosPrintLog("SYN ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); }} while(0)
{ \
#define sFatalLong(...) do { if (sDebugFlag & DEBUG_FATAL) { taosPrintLongString("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); }} while(0)
if (sDebugFlag & DEBUG_ERROR) { \
#define sErrorLong(...) do { if (sDebugFlag & DEBUG_ERROR) { taosPrintLongString("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); }} while(0)
taosPrintLog("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \
#define sWarnLong(...) do { if (sDebugFlag & DEBUG_WARN) { taosPrintLongString("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); }} while(0)
} \
#define sInfoLong(...) do { if (sDebugFlag & DEBUG_INFO) { taosPrintLongString("SYN ", DEBUG_INFO, 255, __VA_ARGS__); }} while(0)
}
#define sDebugLong(...) do { if (sDebugFlag & DEBUG_DEBUG) { taosPrintLongString("SYN ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); }} while(0)
#define sWarn(...) \
#define sTraceLong(...) do { if (sDebugFlag & DEBUG_TRACE) { taosPrintLongString("SYN ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); }} while(0)
{ \
// clang-format on
if (sDebugFlag & DEBUG_WARN) { \
taosPrintLog("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); \
typedef
struct
SyncTimeout
SyncTimeout
;
} \
typedef
struct
SyncClientRequest
SyncClientRequest
;
}
typedef
struct
SyncPing
SyncPing
;
#define sInfo(...) \
typedef
struct
SyncPingReply
SyncPingReply
;
{ \
typedef
struct
SyncRequestVote
SyncRequestVote
;
if (sDebugFlag & DEBUG_INFO) { \
typedef
struct
SyncRequestVoteReply
SyncRequestVoteReply
;
taosPrintLog("SYN INFO ", DEBUG_INFO, 255, __VA_ARGS__); \
typedef
struct
SyncAppendEntries
SyncAppendEntries
;
} \
}
#define sDebug(...) \
{ \
if (sDebugFlag & DEBUG_DEBUG) { \
taosPrintLog("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); \
} \
}
#define sTrace(...) \
{ \
if (sDebugFlag & DEBUG_TRACE) { \
taosPrintLog("SYN TRACE ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); \
} \
}
#define sFatalLong(...) \
{ \
if (sDebugFlag & DEBUG_FATAL) { \
taosPrintLongString("SYN FATAL ", DEBUG_FATAL, 255, __VA_ARGS__); \
} \
}
#define sErrorLong(...) \
{ \
if (sDebugFlag & DEBUG_ERROR) { \
taosPrintLongString("SYN ERROR ", DEBUG_ERROR, 255, __VA_ARGS__); \
} \
}
#define sWarnLong(...) \
{ \
if (sDebugFlag & DEBUG_WARN) { \
taosPrintLongString("SYN WARN ", DEBUG_WARN, 255, __VA_ARGS__); \
} \
}
#define sInfoLong(...) \
{ \
if (sDebugFlag & DEBUG_INFO) { \
taosPrintLongString("SYN INFO ", DEBUG_INFO, 255, __VA_ARGS__); \
} \
}
#define sDebugLong(...) \
{ \
if (sDebugFlag & DEBUG_DEBUG) { \
taosPrintLongString("SYN DEBUG ", DEBUG_DEBUG, sDebugFlag, __VA_ARGS__); \
} \
}
#define sTraceLong(...) \
{ \
if (sDebugFlag & DEBUG_TRACE) { \
taosPrintLongString("SYN TRACE ", DEBUG_TRACE, sDebugFlag, __VA_ARGS__); \
} \
}
struct
SyncTimeout
;
typedef
struct
SyncTimeout
SyncTimeout
;
struct
SyncClientRequest
;
typedef
struct
SyncClientRequest
SyncClientRequest
;
struct
SyncPing
;
typedef
struct
SyncPing
SyncPing
;
struct
SyncPingReply
;
typedef
struct
SyncPingReply
SyncPingReply
;
struct
SyncRequestVote
;
typedef
struct
SyncRequestVote
SyncRequestVote
;
struct
SyncRequestVoteReply
;
typedef
struct
SyncRequestVoteReply
SyncRequestVoteReply
;
struct
SyncAppendEntries
;
typedef
struct
SyncAppendEntries
SyncAppendEntries
;
struct
SyncAppendEntriesReply
;
typedef
struct
SyncAppendEntriesReply
SyncAppendEntriesReply
;
typedef
struct
SyncAppendEntriesReply
SyncAppendEntriesReply
;
typedef
struct
SSyncEnv
SSyncEnv
;
struct
SSyncEnv
;
typedef
struct
SRaftStore
SRaftStore
;
typedef
struct
SSyncEnv
SSyncEnv
;
typedef
struct
SVotesGranted
SVotesGranted
;
typedef
struct
SVotesRespond
SVotesRespond
;
struct
SRaftStore
;
typedef
struct
SSyncIndexMgr
SSyncIndexMgr
;
typedef
struct
SRaftStore
SRaftStore
;
typedef
struct
SRaftCfg
SRaftCfg
;
typedef
struct
SSyncRespMgr
SSyncRespMgr
;
struct
SVotesGranted
;
typedef
struct
SVotesGranted
SVotesGranted
;
struct
SVotesRespond
;
typedef
struct
SVotesRespond
SVotesRespond
;
struct
SSyncIndexMgr
;
typedef
struct
SSyncIndexMgr
SSyncIndexMgr
;
struct
SRaftCfg
;
typedef
struct
SRaftCfg
SRaftCfg
;
struct
SSyncRespMgr
;
typedef
struct
SSyncRespMgr
SSyncRespMgr
;
typedef
struct
SSyncNode
{
typedef
struct
SSyncNode
{
// init by SSyncInfo
// init by SSyncInfo
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录