Versions in this module Expand all Collapse all v0 v0.7.1 Jul 22, 2022 v0.7.0 Aug 24, 2020 Changes in this version + var ClusterVersionMetrics = prometheus.NewGaugeVec(prometheus.GaugeOpts{ ... }, []string{ ... }) + var ErrIDExists = errors.New("membership: ID exists") + var ErrIDNotFound = errors.New("membership: ID not found") + var ErrIDRemoved = errors.New("membership: ID removed") + var ErrMemberNotLearner = errors.New("membership: can only promote a learner member") + var ErrPeerURLexists = errors.New("membership: peerURL exists") + var ErrTooManyLearners = errors.New("membership: too many learner members in cluster") + var StoreMembersPrefix = path.Join(storePrefix, "members") + func AllowedDowngradeVersion(ver *semver.Version) *semver.Version + func IsValidVersionChange(cv *semver.Version, lv *semver.Version) bool + func MemberAttributesStorePath(id types.ID) string + func MemberStoreKey(id types.ID) string + func MustParseMemberIDFromKey(lg *zap.Logger, key string) types.ID + func RemovedMemberStoreKey(id types.ID) string + func StoreClusterVersionKey() string + func ValidateClusterAndAssignIDs(lg *zap.Logger, local *RaftCluster, existing *RaftCluster) error + type Attributes struct + ClientURLs []string + Name string + type ConfigChangeContext struct + IsPromote bool + type DowngradeInfo struct + Enabled bool + TargetVersion string + func (d *DowngradeInfo) GetTargetVersion() *semver.Version + type Member struct + ID types.ID + func NewMember(name string, peerURLs types.URLs, clusterName string, now *time.Time) *Member + func NewMemberAsLearner(name string, peerURLs types.URLs, clusterName string, now *time.Time) *Member + func (m *Member) Clone() *Member + func (m *Member) IsStarted() bool + func (m *Member) PickPeerURL() string + type MembersByID []*Member + func (ms MembersByID) Len() int + func (ms MembersByID) Less(i, j int) bool + func (ms MembersByID) Swap(i, j int) + type MembersByPeerURLs []*Member + func (ms MembersByPeerURLs) Len() int + func (ms MembersByPeerURLs) Less(i, j int) bool + func (ms MembersByPeerURLs) Swap(i, j int) + type RaftAttributes struct + IsLearner bool + PeerURLs []string + type RaftCluster struct + func NewCluster(lg *zap.Logger, token string) *RaftCluster + func NewClusterFromMembers(lg *zap.Logger, token string, id types.ID, membs []*Member) *RaftCluster + func NewClusterFromURLsMap(lg *zap.Logger, token string, urlsmap types.URLsMap) (*RaftCluster, error) + func (c *RaftCluster) AddMember(m *Member) + func (c *RaftCluster) ClientURLs() []string + func (c *RaftCluster) DowngradeInfo() *DowngradeInfo + func (c *RaftCluster) ID() types.ID + func (c *RaftCluster) IsIDRemoved(id types.ID) bool + func (c *RaftCluster) IsLocalMemberLearner() bool + func (c *RaftCluster) IsMemberExist(id types.ID) bool + func (c *RaftCluster) IsReadyToAddVotingMember() bool + func (c *RaftCluster) IsReadyToPromoteMember(id uint64) bool + func (c *RaftCluster) IsReadyToRemoveVotingMember(id uint64) bool + func (c *RaftCluster) Member(id types.ID) *Member + func (c *RaftCluster) MemberByName(name string) *Member + func (c *RaftCluster) MemberIDs() []types.ID + func (c *RaftCluster) Members() []*Member + func (c *RaftCluster) PeerURLs() []string + func (c *RaftCluster) PromoteMember(id types.ID) + func (c *RaftCluster) Recover(onSet func(*zap.Logger, *semver.Version)) + func (c *RaftCluster) RemoveMember(id types.ID) + func (c *RaftCluster) SetBackend(be backend.Backend) + func (c *RaftCluster) SetDowngradeInfo(d *DowngradeInfo) + func (c *RaftCluster) SetID(localID, cid types.ID) + func (c *RaftCluster) SetStore(st v2store.Store) + func (c *RaftCluster) SetVersion(ver *semver.Version, onSet func(*zap.Logger, *semver.Version)) + func (c *RaftCluster) String() string + func (c *RaftCluster) UpdateAttributes(id types.ID, attr Attributes) + func (c *RaftCluster) UpdateRaftAttributes(id types.ID, raftAttr RaftAttributes) + func (c *RaftCluster) ValidateConfigurationChange(cc raftpb.ConfChange) error + func (c *RaftCluster) Version() *semver.Version + func (c *RaftCluster) VotingMemberIDs() []types.ID + func (c *RaftCluster) VotingMembers() []*Member