Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrInvalidTopologyType = coderr.NewCodeError(coderr.InvalidParams, "invalid topology type")
Functions ¶
This section is empty.
Types ¶
type SchedulerManager ¶
type SchedulerManager interface { ListScheduler() []scheduler.Scheduler Start(ctx context.Context) error Stop(ctx context.Context) error UpdateEnableSchedule(ctx context.Context, enableSchedule bool) // UpdateDeployMode can only be used in dynamic mode, it will throw error when topology type is static. // when deploy mode is true, shard topology will not be updated, it is usually used in scenarios such as cluster deploy. UpdateDeployMode(ctx context.Context, enable bool) error // GetDeployMode can only be used in dynamic mode, it will throw error when topology type is static. GetDeployMode(ctx context.Context) (bool, error) // AddShardAffinityRule adds a shard affinity rule to the manager, and then apply it to the underlying schedulers. AddShardAffinityRule(ctx context.Context, rule scheduler.ShardAffinityRule) error // Remove the shard rules applied to some specific rule. RemoveShardAffinityRule(ctx context.Context, shardID storage.ShardID) error // ListShardAffinityRules lists all the rules about shard affinity of all the registered schedulers. ListShardAffinityRules(ctx context.Context) (map[string]scheduler.ShardAffinityRule, error) // Scheduler will be called when received new heartbeat, every scheduler registered in schedulerManager will be called to generate procedures. // Scheduler cloud be schedule with fix time interval or heartbeat. Scheduler(ctx context.Context, clusterSnapshot metadata.Snapshot) []scheduler.ScheduleResult }
SchedulerManager used to manage schedulers, it will register all schedulers when it starts.
Each registered scheduler will generate procedures if the cluster topology matches the scheduling condition.
func NewManager ¶
func NewManager(logger *zap.Logger, procedureManager procedure.Manager, factory *coordinator.Factory, clusterMetadata *metadata.ClusterMetadata, client *clientv3.Client, rootPath string, enableSchedule bool, topologyType storage.TopologyType, procedureExecutingBatchSize uint32) SchedulerManager
Click to show internal directories.
Click to hide internal directories.