Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ClusterState ¶
Return addr of the single leader of the cluster and its term.
type MockRaftNode ¶
type MockRaftNode struct { }
Mock local Raft node to test basic function without starting a real network server
func (*MockRaftNode) Id ¶
func (node *MockRaftNode) Id() string
func (*MockRaftNode) Peers ¶
func (node *MockRaftNode) Peers() []raft.RaftPeer
type RaftNode ¶
type RaftNode struct {
// contains filtered or unexported fields
}
Local Raft node implementation
Expects node to be already up and running. Does not handle startup or shutdown
type RaftPeer ¶
type RaftPeer struct {
// contains filtered or unexported fields
}
Remote Raft node implementation. Can be used as RPC proxy
Uses port number as id. Expects node to be already connected to the addr and running
func (*RaftPeer) AppendEntries ¶
func (peer *RaftPeer) AppendEntries(args raft.AppendEntriesArgs, reply *raft.AppendEntriesReply) error
func (*RaftPeer) RequestVote ¶
func (peer *RaftPeer) RequestVote(args raft.RequestVoteArgs, reply *raft.RequestVoteReply) error
type RaftSettings ¶
type RaftSettings struct { MinElectionTimeout time.Duration MaxElectionTimeout time.Duration MinHeartbeatTimeout time.Duration MaxHeartbeatTimeout time.Duration }
Implementation of raft.RaftSettings
Default timeouts are the ones suggested in the original paper
func NewRaftSettings ¶
func NewRaftSettings() RaftSettings
func (RaftSettings) ElectionTimeout ¶
func (settings RaftSettings) ElectionTimeout() time.Duration
func (RaftSettings) HeartbeatTimeout ¶
func (settings RaftSettings) HeartbeatTimeout() time.Duration
func (RaftSettings) Majority ¶
func (settings RaftSettings) Majority(peers int) int
Click to show internal directories.
Click to hide internal directories.