commit
009270aa14
|
@ -13,8 +13,8 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TDENGINE_RAFT_SYNC_H
|
#ifndef _TD_LIBS_SYNC_H
|
||||||
#define TDENGINE_RAFT_SYNC_H
|
#define _TD_LIBS_SYNC_H
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -25,41 +25,40 @@ extern "C" {
|
||||||
#include "wal.h"
|
#include "wal.h"
|
||||||
|
|
||||||
typedef uint32_t SyncNodeId;
|
typedef uint32_t SyncNodeId;
|
||||||
typedef int32_t SyncGroupId;
|
typedef int32_t SyncGroupId;
|
||||||
typedef int64_t SyncIndex;
|
typedef int64_t SyncIndex;
|
||||||
typedef uint64_t SSyncTerm;
|
typedef uint64_t SyncTerm;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
TAOS_SYNC_ROLE_FOLLOWER = 0,
|
TAOS_SYNC_ROLE_FOLLOWER = 0,
|
||||||
TAOS_SYNC_ROLE_CANDIDATE = 1,
|
TAOS_SYNC_ROLE_CANDIDATE = 1,
|
||||||
TAOS_SYNC_ROLE_LEADER = 2,
|
TAOS_SYNC_ROLE_LEADER = 2,
|
||||||
} ESyncRole;
|
} ESyncRole;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
void* data;
|
void* data;
|
||||||
size_t len;
|
size_t len;
|
||||||
} SSyncBuffer;
|
} SSyncBuffer;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
SyncNodeId nodeId; // node ID assigned by TDengine
|
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 {
|
||||||
int selfIndex;
|
int selfIndex;
|
||||||
int nNode;
|
int nNode;
|
||||||
SNodeInfo* nodeInfo;
|
SNodeInfo* nodeInfo;
|
||||||
} SSyncCluster;
|
} SSyncCluster;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int32_t selfIndex;
|
int32_t selfIndex;
|
||||||
int nNode;
|
int nNode;
|
||||||
SyncNodeId* nodeId;
|
SyncNodeId* nodeId;
|
||||||
ESyncRole* role;
|
ESyncRole* role;
|
||||||
} SNodesRole;
|
} SNodesRole;
|
||||||
|
|
||||||
struct SSyncFSM;
|
|
||||||
typedef struct SSyncFSM {
|
typedef struct SSyncFSM {
|
||||||
void* pData;
|
void* pData;
|
||||||
|
|
||||||
|
@ -87,7 +86,7 @@ typedef struct SSyncFSM {
|
||||||
|
|
||||||
typedef struct SSyncServerState {
|
typedef struct SSyncServerState {
|
||||||
SyncNodeId voteFor;
|
SyncNodeId voteFor;
|
||||||
SSyncTerm term;
|
SyncTerm term;
|
||||||
} SSyncServerState;
|
} SSyncServerState;
|
||||||
|
|
||||||
typedef struct SStateManager {
|
typedef struct SStateManager {
|
||||||
|
@ -103,12 +102,12 @@ typedef struct SStateManager {
|
||||||
} SStateManager;
|
} SStateManager;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
SyncGroupId vgId;
|
SyncGroupId vgId;
|
||||||
|
|
||||||
twalh walHandle;
|
twalh walHandle;
|
||||||
|
|
||||||
SyncIndex snapshotIndex; // initial version
|
SyncIndex snapshotIndex; // initial version
|
||||||
SSyncCluster syncCfg; // configuration from mgmt
|
SSyncCluster syncCfg; // configuration from mgmt
|
||||||
|
|
||||||
SSyncFSM fsm;
|
SSyncFSM fsm;
|
||||||
|
|
||||||
|
@ -118,15 +117,15 @@ typedef struct {
|
||||||
int32_t syncInit();
|
int32_t syncInit();
|
||||||
void syncCleanUp();
|
void syncCleanUp();
|
||||||
|
|
||||||
SyncNodeId syncStart(const SSyncInfo *);
|
SyncNodeId syncStart(const SSyncInfo*);
|
||||||
void syncStop(SyncNodeId);
|
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 raftDebugFlag;
|
extern int32_t syncDebugFlag;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // TDENGINE_RAFT_SYNC_H
|
#endif /*_TD_LIBS_SYNC_H*/
|
||||||
|
|
Loading…
Reference in New Issue