Merge pull request #8427 from taosdata/feature/raft-interface

[feeature][raft]refactor sync interface
This commit is contained in:
Shengliang Guan 2021-10-26 10:24:35 +08:00 committed by GitHub
commit cf0ad02def
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 15 deletions

View File

@ -24,10 +24,10 @@ extern "C" {
#include "taosdef.h" #include "taosdef.h"
#include "wal.h" #include "wal.h"
typedef uint32_t SyncNodeId; typedef int64_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 SSyncTerm;
typedef enum { typedef enum {
TAOS_SYNC_ROLE_FOLLOWER = 0, TAOS_SYNC_ROLE_FOLLOWER = 0,
@ -41,9 +41,8 @@ typedef struct {
} SSyncBuffer; } SSyncBuffer;
typedef struct { typedef struct {
SyncNodeId nodeId; // node ID assigned by TDengine uint16_t nodePort; // node sync Port
uint16_t nodePort; // node sync Port char nodeFqdn[TSDB_FQDN_LEN]; // node FQDN
char nodeFqdn[TSDB_FQDN_LEN]; // node FQDN
} SNodeInfo; } SNodeInfo;
typedef struct { typedef struct {
@ -53,9 +52,9 @@ typedef struct {
} SSyncCluster; } SSyncCluster;
typedef struct { typedef struct {
int32_t selfIndex; int32_t selfIndex;
int nNode; int nNode;
SyncNodeId* nodeId; SNodeInfo* node;
ESyncRole* role; ESyncRole* role;
} SNodesRole; } SNodesRole;
@ -85,8 +84,8 @@ typedef struct SSyncFSM {
} SSyncFSM; } SSyncFSM;
typedef struct SSyncServerState { typedef struct SSyncServerState {
SyncNodeId voteFor; SNodeInfo voteFor;
SyncTerm term; SSyncTerm term;
} SSyncServerState; } SSyncServerState;
typedef struct SStateManager { typedef struct SStateManager {
@ -106,8 +105,8 @@ typedef struct {
twalh walHandle; twalh walHandle;
SyncIndex snapshotIndex; // initial version SyncIndex snapshotIndex;
SSyncCluster syncCfg; // configuration from mgmt SSyncCluster syncCfg;
SSyncFSM fsm; SSyncFSM fsm;
@ -122,7 +121,11 @@ void syncStop(SyncNodeId);
int32_t syncPropose(SyncNodeId nodeId, SSyncBuffer buffer, void* pData, bool isWeak); int32_t syncPropose(SyncNodeId nodeId, SSyncBuffer buffer, void* pData, bool isWeak);
extern int32_t syncDebugFlag; int32_t syncAddNode(SyncNodeId nodeId, const SNodeInfo *pNode);
int32_t syncRemoveNode(SyncNodeId nodeId, const SNodeInfo *pNode);
extern int32_t syncDebugFlag;
#ifdef __cplusplus #ifdef __cplusplus
} }