Documentation ¶
Overview ¶
Package grp implements a group manager (GrpMgr), as well as a node map (NodeMap).
Index ¶
- Constants
- Variables
- func EpochSlicesEqual(a, b []Epoch) bool
- type Epoch
- type GroupManager
- type GrpMgr
- func (grpmgr *GrpMgr) ArEnabled() bool
- func (grpmgr *GrpMgr) Epochs() []Epoch
- func (grpmgr *GrpMgr) GetID() ID
- func (grpmgr *GrpMgr) LrEnabled() bool
- func (grpmgr *GrpMgr) NodeMap() *NodeMap
- func (grpmgr *GrpMgr) NrOfAcceptors() uint
- func (grpmgr *GrpMgr) NrOfNodes() uint
- func (grpmgr *GrpMgr) Quorum() uint
- func (grpmgr *GrpMgr) RequestHold(releaseChan chan bool)
- func (grpmgr *GrpMgr) SetID(newID ID) error
- func (grpmgr *GrpMgr) SetNewNodeMap(nm map[ID]Node)
- func (grpmgr *GrpMgr) Start()
- func (grpmgr *GrpMgr) Stop()
- func (grpmgr *GrpMgr) SubscribeToHold(name string) Subscriber
- type GrpMgrMock
- func (gmm *GrpMgrMock) ArEnabled() bool
- func (gmm *GrpMgrMock) Epochs() []Epoch
- func (gmm *GrpMgrMock) GetID() ID
- func (gmm *GrpMgrMock) LrEnabled() bool
- func (gmm *GrpMgrMock) NodeMap() *NodeMap
- func (gmm *GrpMgrMock) NrOfAcceptors() uint
- func (gmm *GrpMgrMock) NrOfNodes() uint
- func (gmm *GrpMgrMock) Quorum() uint
- func (gmm *GrpMgrMock) RequestHold(releaseChan chan bool)
- func (gmm *GrpMgrMock) SetID(id ID) error
- func (gmm *GrpMgrMock) SetNewNodeMap(nm map[ID]Node)
- func (gmm *GrpMgrMock) Start()
- func (gmm *GrpMgrMock) Stop()
- func (gmm *GrpMgrMock) SubscribeToHold(name string) Subscriber
- type ID
- type Node
- type NodeMap
- func (nm *NodeMap) AcceptorIDs() []ID
- func (nm *NodeMap) Add(id ID, node Node) error
- func (nm *NodeMap) CloneMap() map[ID]Node
- func (nm *NodeMap) Epochs() []Epoch
- func (nm *NodeMap) GetNext(id ID) ID
- func (nm *NodeMap) IDs() []ID
- func (nm *NodeMap) IsNew(id ID, n Node) bool
- func (nm *NodeMap) LearnerIDs() []ID
- func (nm *NodeMap) Len() uint
- func (nm *NodeMap) LookupNode(id ID) (Node, bool)
- func (nm *NodeMap) LookupNodeWithPaxosID(pxID PaxosID) (ID, Node, bool)
- func (nm *NodeMap) Nodes() []Node
- func (nm *NodeMap) NrOfAcceptors() uint
- func (nm *NodeMap) NrOfNodes() uint
- func (nm *NodeMap) ProposerIDs() []ID
- func (nm *NodeMap) Quorum() uint
- func (nm *NodeMap) Replace(newID ID, newNode Node) error
- type PaxosID
- type Subscriber
Constants ¶
Variables ¶
View Source
var ( ErrNodeAlreadyPresent = errors.New("node with given id is already present in NodeMap") ErrOldNodeNotFound = errors.New("node with given id not already present in Nodemap") ErrEqualPaxosIDAlreadyPresent = errors.New("node with given paxos id is already present in NodeMap") ErrNodeIDOutOfBounds = errors.New("node with given id is out of bounds for current cluster size") )
Functions ¶
func EpochSlicesEqual ¶
Types ¶
type GroupManager ¶
type GroupManager interface { Start() Stop() RequestHold(releaseChan chan bool) SubscribeToHold(name string) Subscriber NodeMap() *NodeMap NrOfNodes() uint NrOfAcceptors() uint Quorum() uint Epochs() []Epoch LrEnabled() bool ArEnabled() bool SetNewNodeMap(nm map[ID]Node) GetID() ID SetID(ID) error }
func NewGrpMgrMock ¶
func NewGrpMgrMock(nrOfNodes uint) GroupManager
func NewGrpMgrMockWithLr ¶
func NewGrpMgrMockWithLr(nrOfNodes uint, epochs []Epoch) GroupManager
type GrpMgr ¶
type GrpMgr struct {
// contains filtered or unexported fields
}
func (*GrpMgr) NrOfAcceptors ¶
func (*GrpMgr) RequestHold ¶
func (*GrpMgr) SetNewNodeMap ¶
func (*GrpMgr) SubscribeToHold ¶
func (grpmgr *GrpMgr) SubscribeToHold(name string) Subscriber
type GrpMgrMock ¶
type GrpMgrMock struct {
// contains filtered or unexported fields
}
func (*GrpMgrMock) ArEnabled ¶
func (gmm *GrpMgrMock) ArEnabled() bool
func (*GrpMgrMock) Epochs ¶
func (gmm *GrpMgrMock) Epochs() []Epoch
func (*GrpMgrMock) GetID ¶
func (gmm *GrpMgrMock) GetID() ID
func (*GrpMgrMock) LrEnabled ¶
func (gmm *GrpMgrMock) LrEnabled() bool
func (*GrpMgrMock) NodeMap ¶
func (gmm *GrpMgrMock) NodeMap() *NodeMap
func (*GrpMgrMock) NrOfAcceptors ¶
func (gmm *GrpMgrMock) NrOfAcceptors() uint
func (*GrpMgrMock) NrOfNodes ¶
func (gmm *GrpMgrMock) NrOfNodes() uint
func (*GrpMgrMock) Quorum ¶
func (gmm *GrpMgrMock) Quorum() uint
func (*GrpMgrMock) RequestHold ¶
func (gmm *GrpMgrMock) RequestHold(releaseChan chan bool)
func (*GrpMgrMock) SetID ¶
func (gmm *GrpMgrMock) SetID(id ID) error
func (*GrpMgrMock) SetNewNodeMap ¶
func (gmm *GrpMgrMock) SetNewNodeMap(nm map[ID]Node)
func (*GrpMgrMock) Start ¶
func (gmm *GrpMgrMock) Start()
func (*GrpMgrMock) Stop ¶
func (gmm *GrpMgrMock) Stop()
func (*GrpMgrMock) SubscribeToHold ¶
func (gmm *GrpMgrMock) SubscribeToHold(name string) Subscriber
type Node ¶
type Node struct { IP string PaxosPort string ClientPort string Proposer bool Acceptor bool Learner bool }
func (Node) ActorString ¶
func (Node) ClientAddr ¶
type NodeMap ¶
type NodeMap struct {
// contains filtered or unexported fields
}
func NewNodeMap ¶
func NewNodeMapWithCount ¶
func (*NodeMap) AcceptorIDs ¶
func (*NodeMap) LearnerIDs ¶
func (*NodeMap) LookupNodeWithPaxosID ¶
func (*NodeMap) NrOfAcceptors ¶
func (*NodeMap) ProposerIDs ¶
type Subscriber ¶
type Subscriber struct {
// contains filtered or unexported fields
}
func (*Subscriber) PrepareChan ¶
func (s *Subscriber) PrepareChan() <-chan *sync.WaitGroup
func (*Subscriber) ReleaseChan ¶
func (s *Subscriber) ReleaseChan() <-chan bool
Click to show internal directories.
Click to hide internal directories.