broker

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL