Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4845ca7f
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
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看板
提交
4845ca7f
编写于
10月 28, 2021
作者:
L
lichuang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
<feeature>[raft]refactor raft interface,add log store methods
上级
eddbd36c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
40 addition
and
10 deletion
+40
-10
include/libs/sync/sync.h
include/libs/sync/sync.h
+40
-10
未找到文件。
include/libs/sync/sync.h
浏览文件 @
4845ca7f
...
...
@@ -22,7 +22,6 @@ extern "C" {
#include <stdint.h>
#include "taosdef.h"
#include "wal.h"
typedef
int64_t
SyncNodeId
;
typedef
int32_t
SyncGroupId
;
...
...
@@ -41,6 +40,7 @@ typedef struct {
}
SSyncBuffer
;
typedef
struct
{
SyncNodeId
nodeId
;
uint16_t
nodePort
;
// node sync Port
char
nodeFqdn
[
TSDB_FQDN_LEN
];
// node FQDN
}
SNodeInfo
;
...
...
@@ -83,11 +83,38 @@ typedef struct SSyncFSM {
}
SSyncFSM
;
typedef
struct
SSyncLogStore
{
void
*
pData
;
// write log with given index
int32_t
(
*
logWrite
)(
struct
SSyncLogStore
*
logStore
,
SyncIndex
index
,
SSyncBuffer
*
pBuf
);
// mark log with given index has been commtted
int32_t
(
*
logCommit
)(
struct
SSyncLogStore
*
logStore
,
SyncIndex
index
);
// prune log before given index
int32_t
(
*
logPrune
)(
struct
SSyncLogStore
*
logStore
,
SyncIndex
index
);
// rollback log after given index
int32_t
(
*
logRollback
)(
struct
SSyncLogStore
*
logStore
,
SyncIndex
index
);
}
SSyncLogStore
;
typedef
struct
SSyncServerState
{
S
NodeInfo
voteFor
;
S
yncNodeId
voteFor
;
SSyncTerm
term
;
}
SSyncServerState
;
typedef
struct
SSyncClusterConfig
{
// Log index number of current cluster config.
SyncIndex
index
;
// Log index number of previous cluster config.
SyncIndex
prevIndex
;
// current cluster
const
SSyncCluster
*
cluster
;
}
SSyncClusterConfig
;
typedef
struct
SStateManager
{
void
*
pData
;
...
...
@@ -95,35 +122,38 @@ typedef struct SStateManager {
const
SSyncServerState
*
(
*
readServerState
)(
struct
SStateManager
*
stateMng
);
void
(
*
saveCluster
)(
struct
SStateManager
*
stateMng
,
const
SSyncCluster
*
cluster
);
void
(
*
saveCluster
)(
struct
SStateManager
*
stateMng
,
const
SSyncCluster
Config
*
cluster
);
const
SSyncCluster
*
(
*
readCluster
)(
struct
SStateManager
*
stateMng
);
const
SSyncCluster
Config
*
(
*
readCluster
)(
struct
SStateManager
*
stateMng
);
}
SStateManager
;
typedef
struct
{
SyncGroupId
vgId
;
twalh
walHandle
;
SyncIndex
snapshotIndex
;
SSyncCluster
syncCfg
;
SSyncFSM
fsm
;
SSyncLogStore
logStore
;
SStateManager
stateManager
;
}
SSyncInfo
;
struct
SSyncNode
;
typedef
struct
SSyncNode
SSyncNode
;
int32_t
syncInit
();
void
syncCleanUp
();
S
yncNodeId
syncStart
(
const
SSyncInfo
*
);
S
SyncNode
syncStart
(
const
SSyncInfo
*
);
void
syncStop
(
SyncNodeId
);
int32_t
syncPropose
(
S
yncNodeId
nodeId
,
SSyncBuffer
buffer
,
void
*
pData
,
bool
isWeak
);
int32_t
syncPropose
(
S
SyncNode
syncNode
,
SSyncBuffer
buffer
,
void
*
pData
,
bool
isWeak
);
int32_t
syncAddNode
(
S
yncNodeId
nodeId
,
const
SNodeInfo
*
pNode
);
int32_t
syncAddNode
(
S
SyncNode
syncNode
,
const
SNodeInfo
*
pNode
);
int32_t
syncRemoveNode
(
S
yncNodeId
nodeId
,
const
SNodeInfo
*
pNode
);
int32_t
syncRemoveNode
(
S
SyncNode
syncNode
,
const
SNodeInfo
*
pNode
);
extern
int32_t
syncDebugFlag
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录