 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- func GetMsgExpirationTimeout() time.Duration
- func SetLeaderAliveThreshold(t time.Duration)
- func SetLeaderElectionDuration(t time.Duration)
- func SetMembershipSampleInterval(t time.Duration)
- func SetStartupGracePeriod(t time.Duration)
- type LeaderElectionAdapter
- type LeaderElectionService
- type Msg
- type Peer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetMsgExpirationTimeout ¶
GetMsgExpirationTimeout return leadership message expiration timeout
func SetLeaderAliveThreshold ¶
SetLeaderAliveThreshold configures leader election alive threshold
func SetLeaderElectionDuration ¶
SetLeaderElectionDuration configures expected leadership election duration, interval to wait until leader election will be completed
func SetMembershipSampleInterval ¶
SetMembershipSampleInterval setups/initializes the frequency the membership view should be checked
Types ¶
type LeaderElectionAdapter ¶
type LeaderElectionAdapter interface {
	// Gossip gossips a message to other peers
	Gossip(Msg)
	// Accept returns a channel that emits messages
	Accept() <-chan Msg
	// CreateProposalMessage
	CreateMessage(isDeclaration bool) Msg
	// Peers returns a list of peers considered alive
	Peers() []Peer
}
    LeaderElectionAdapter is used by the leader election module to send and receive messages and to get membership information
type LeaderElectionService ¶
type LeaderElectionService interface {
	// IsLeader returns whether this peer is a leader or not
	IsLeader() bool
	// Stop stops the LeaderElectionService
	Stop()
	// Yield relinquishes the leadership until a new leader is elected,
	// or a timeout expires
	Yield()
}
    LeaderElectionService is the object that runs the leader election algorithm
func NewLeaderElectionService ¶
func NewLeaderElectionService(adapter LeaderElectionAdapter, id string, callback leadershipCallback) LeaderElectionService
NewLeaderElectionService returns a new LeaderElectionService
type Msg ¶
type Msg interface {
	// SenderID returns the ID of the peer sent the message
	SenderID() peerID
	// IsProposal returns whether this message is a leadership proposal
	IsProposal() bool
	// IsDeclaration returns whether this message is a leadership declaration
	IsDeclaration() bool
}
    Msg describes a message sent from a remote peer
type Peer ¶
type Peer interface {
	// ID returns the ID of the peer
	ID() peerID
}
    Peer describes a remote peer
       Source Files
      ¶
      Source Files
      ¶
    
- adapter.go
- election.go