types

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2025 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// SchedulerTypeCompatibleMap exists for compatibility.
	//
	//	It is used for `SchedulerConfig` in the `PersistOptions` and `PersistConfig`.
	//	These two structs are persisted in the storage, so we need to keep the compatibility.
	SchedulerTypeCompatibleMap = map[CheckerSchedulerType]string{
		BalanceLeaderScheduler:         "balance-leader",
		BalanceRegionScheduler:         "balance-region",
		BalanceWitnessScheduler:        "balance-witness",
		EvictLeaderScheduler:           "evict-leader",
		EvictSlowStoreScheduler:        "evict-slow-store",
		EvictSlowTrendScheduler:        "evict-slow-trend",
		GrantLeaderScheduler:           "grant-leader",
		GrantHotRegionScheduler:        "grant-hot-region",
		BalanceHotRegionScheduler:      "hot-region",
		RandomMergeScheduler:           "random-merge",
		ScatterRangeScheduler:          "scatter-range",
		ShuffleHotRegionScheduler:      "shuffle-hot-region",
		ShuffleLeaderScheduler:         "shuffle-leader",
		ShuffleRegionScheduler:         "shuffle-region",
		SplitBucketScheduler:           "split-bucket",
		TransferWitnessLeaderScheduler: "transfer-witness-leader",
		LabelScheduler:                 "label",
		BalanceRangeScheduler:          "balance-range",
	}

	// ConvertOldStrToType exists for compatibility.
	//
	//	It is used to convert the old scheduler type to `CheckerSchedulerType`.
	ConvertOldStrToType = map[string]CheckerSchedulerType{
		"balance-leader":          BalanceLeaderScheduler,
		"balance-region":          BalanceRegionScheduler,
		"balance-witness":         BalanceWitnessScheduler,
		"evict-leader":            EvictLeaderScheduler,
		"evict-slow-store":        EvictSlowStoreScheduler,
		"evict-slow-trend":        EvictSlowTrendScheduler,
		"grant-leader":            GrantLeaderScheduler,
		"grant-hot-region":        GrantHotRegionScheduler,
		"hot-region":              BalanceHotRegionScheduler,
		"random-merge":            RandomMergeScheduler,
		"scatter-range":           ScatterRangeScheduler,
		"shuffle-hot-region":      ShuffleHotRegionScheduler,
		"shuffle-leader":          ShuffleLeaderScheduler,
		"shuffle-region":          ShuffleRegionScheduler,
		"split-bucket":            SplitBucketScheduler,
		"transfer-witness-leader": TransferWitnessLeaderScheduler,
		"label":                   LabelScheduler,
		"balance-range":           BalanceRangeScheduler,
	}

	// StringToSchedulerType is a map to convert the scheduler string to the CheckerSchedulerType.
	StringToSchedulerType = map[string]CheckerSchedulerType{
		"balance-leader-scheduler":     BalanceLeaderScheduler,
		"balance-region-scheduler":     BalanceRegionScheduler,
		"balance-witness-scheduler":    BalanceWitnessScheduler,
		"evict-leader-scheduler":       EvictLeaderScheduler,
		"evict-slow-store-scheduler":   EvictSlowStoreScheduler,
		"evict-slow-trend-scheduler":   EvictSlowTrendScheduler,
		"grant-leader-scheduler":       GrantLeaderScheduler,
		"grant-hot-region-scheduler":   GrantHotRegionScheduler,
		"balance-hot-region-scheduler": BalanceHotRegionScheduler,
		"random-merge-scheduler":       RandomMergeScheduler,
		"scatter-range-scheduler":      ScatterRangeScheduler,

		"scatter-range":                     ScatterRangeScheduler,
		"balance-range":                     BalanceRangeScheduler,
		"shuffle-hot-region-scheduler":      ShuffleHotRegionScheduler,
		"shuffle-leader-scheduler":          ShuffleLeaderScheduler,
		"shuffle-region-scheduler":          ShuffleRegionScheduler,
		"split-bucket-scheduler":            SplitBucketScheduler,
		"transfer-witness-leader-scheduler": TransferWitnessLeaderScheduler,
		"label-scheduler":                   LabelScheduler,
		"balance-range-scheduler":           BalanceRangeScheduler,
	}

	// DefaultSchedulers is the default scheduler types.
	// If you want to add a new scheduler, please
	//   1. add it to the list
	//   2. change the `schedulerConfig` interface to the `baseDefaultSchedulerConfig`
	// 		structure in related `xxxxSchedulerConfig`
	//   3. remove `syncutil.RWMutex` from related `xxxxSchedulerConfig`
	DefaultSchedulers = []CheckerSchedulerType{
		BalanceLeaderScheduler,
		BalanceRegionScheduler,
		BalanceHotRegionScheduler,
		EvictSlowStoreScheduler,
	}
)

TODO: SchedulerTypeCompatibleMap and ConvertOldStrToType should be removed after fixing this issue(https://github.com/kumo-pub/kmpd/issues/8474).

Functions

This section is empty.

Types

type CheckerSchedulerType

type CheckerSchedulerType string

CheckerSchedulerType is the type of checker/scheduler.

const (
	// JointStateChecker is the name for joint state checker.
	JointStateChecker CheckerSchedulerType = "joint-state-checker"
	// LearnerChecker is the name for learner checker.
	LearnerChecker CheckerSchedulerType = "learner-checker"
	// MergeChecker is the name for split checker.
	MergeChecker CheckerSchedulerType = "merge-checker"
	// ReplicaChecker is the name for replica checker.
	ReplicaChecker CheckerSchedulerType = "replica-checker"
	// RuleChecker is the name for rule checker.
	RuleChecker CheckerSchedulerType = "rule-checker"
	// SplitChecker is the name for split checker.
	SplitChecker CheckerSchedulerType = "split-checker"

	// BalanceLeaderScheduler is balance leader scheduler name.
	BalanceLeaderScheduler CheckerSchedulerType = "balance-leader-scheduler"
	// BalanceRegionScheduler is balance region scheduler name.
	BalanceRegionScheduler CheckerSchedulerType = "balance-region-scheduler"
	// BalanceWitnessScheduler is balance witness scheduler name.
	BalanceWitnessScheduler CheckerSchedulerType = "balance-witness-scheduler"
	// EvictLeaderScheduler is evict leader scheduler name.
	EvictLeaderScheduler CheckerSchedulerType = "evict-leader-scheduler"
	// EvictSlowStoreScheduler is evict leader scheduler name.
	EvictSlowStoreScheduler CheckerSchedulerType = "evict-slow-store-scheduler"
	// EvictSlowTrendScheduler is evict leader by slow trend scheduler name.
	EvictSlowTrendScheduler CheckerSchedulerType = "evict-slow-trend-scheduler"
	// GrantLeaderScheduler is grant leader scheduler name.
	GrantLeaderScheduler CheckerSchedulerType = "grant-leader-scheduler"
	// GrantHotRegionScheduler is grant hot region scheduler name.
	GrantHotRegionScheduler CheckerSchedulerType = "grant-hot-region-scheduler"
	// BalanceHotRegionScheduler is balance hot region scheduler name.
	BalanceHotRegionScheduler CheckerSchedulerType = "balance-hot-region-scheduler"
	// RandomMergeScheduler is random merge scheduler name.
	RandomMergeScheduler CheckerSchedulerType = "random-merge-scheduler"
	// ScatterRangeScheduler is scatter range scheduler name.
	ScatterRangeScheduler CheckerSchedulerType = "scatter-range-scheduler"
	// ShuffleHotRegionScheduler is shuffle hot region scheduler name.
	ShuffleHotRegionScheduler CheckerSchedulerType = "shuffle-hot-region-scheduler"
	// ShuffleLeaderScheduler is shuffle leader scheduler name.
	ShuffleLeaderScheduler CheckerSchedulerType = "shuffle-leader-scheduler"
	// ShuffleRegionScheduler is shuffle region scheduler name.
	ShuffleRegionScheduler CheckerSchedulerType = "shuffle-region-scheduler"
	// SplitBucketScheduler is the split bucket name.
	SplitBucketScheduler CheckerSchedulerType = "split-bucket-scheduler"
	// TransferWitnessLeaderScheduler is transfer witness leader scheduler name.
	TransferWitnessLeaderScheduler CheckerSchedulerType = "transfer-witness-leader-scheduler"
	// LabelScheduler is label scheduler name.
	LabelScheduler CheckerSchedulerType = "label-scheduler"
	// BalanceRangeScheduler is balance key range scheduler name.
	BalanceRangeScheduler CheckerSchedulerType = "balance-range-scheduler"
)

func (CheckerSchedulerType) String

func (t CheckerSchedulerType) String() string

String implements fmt.Stringer.

Jump to

Keyboard shortcuts

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