Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var StateMachinePaths = make(map[string]models.StateMachineInfo)
StateMachinePaths represents the paths which broker state machine need watch.
Functions ¶
func NewStateMachineFactory ¶
func NewStateMachineFactory( ctx context.Context, discoveryFactory discovery.Factory, stateMgr StateManager, ) discovery.StateMachineFactory
NewStateMachineFactory creates a state machine factory instance.
Types ¶
type StateManager ¶
type StateManager interface { flow.NodeChoose discovery.StateMachineEventHandle // GetCurrentNode returns the current node. GetCurrentNode() models.StatelessNode // GetLiveNodes returns all live broker nodes. GetLiveNodes() []models.StatelessNode // GetDatabaseCfg returns the database config by name. GetDatabaseCfg(databaseName string) (models.Database, bool) // GetDatabases returns current database config list. GetDatabases() []models.Database // GetQueryableReplicas returns the queryable replicas, // and chooses the leader replica if the shard has multi-replica. // returns storage node => shard id list GetQueryableReplicas(databaseName string) (map[string][]models.ShardID, error) // GetStorage returns storage state by name. GetStorage(name string) (*models.StorageState, bool) // GetStorageList returns all storage state list. GetStorageList() (rs []*models.StorageState) // GetDatabaseLimits returns the database's limits. GetDatabaseLimits(name string) *models.Limits WatchShardStateChangeEvent(fn func(databaseCfg models.Database, shards map[models.ShardID]models.ShardState, liveNodes map[models.NodeID]models.StatefulNode, )) }
StateManager represents broker state manager, maintains broker node/database/storage states in memory.
func NewStateManager ¶
func NewStateManager( ctx context.Context, currentNode models.StatelessNode, connectionManager rpc.ConnectionManager, taskClientFactory rpc.TaskClientFactory, ) StateManager
NewStateManager creates a broker state manager instance.
Click to show internal directories.
Click to hide internal directories.