Documentation
¶
Index ¶
- Constants
- func AllOf[T any](s []T, p func(int) bool) bool
- func AnyOf[T any](s []T, p func(int) bool) bool
- func Contains[T comparable](slice []T, value T) bool
- func NoneOf[T any](s []T, p func(int) bool) bool
- func WithFiller(filler string) func(*Bar)
- func WithFillerLength(l int64) func(*Bar)
- func WithInterval(t time.Duration) func(*Bar)
- type Bar
- type Capture
- type ChangefeedCommonInfo
- type Config
- type DRAutoSyncReplicationConfig
- type DashboardConfig
- type Error
- type ErrorType
- type GetMembersResponse
- type HTTPReplicationStatus
- type LabelConstraint
- type LabelConstraintOp
- type LabelPropertyConfig
- type ListResponse
- type Member
- type MetaStore
- type PDServerConfig
- type PeerRoleType
- type ReplicationConfig
- type ReplicationModeConfig
- type ResponseHeader
- type Rule
- type RunningError
- type ScheduleConfig
- type SchedulerConfig
- type SchedulerConfigs
- type StoreInfo
- type StoreLabel
- type StoreLimitConfig
- type StoreStatus
- type StoresInfo
- type Table
Constants ¶
const NILVALUE = "NULL"
Variables ¶
This section is empty.
Functions ¶
func Contains ¶
func Contains[T comparable](slice []T, value T) bool
Contains returns true if the given slice contains the value.
Types ¶
type Capture ¶
type Capture struct {
ID string `json:"id"`
IsOwner bool `json:"is_owner"`
AdvertiseAddr string `json:"address"`
ClusterID string `json:"cluster_id"`
}
Capture holds common information of a capture in cdc
type ChangefeedCommonInfo ¶
type ChangefeedCommonInfo struct {
UpstreamID uint64 `json:"upstream_id"`
Namespace string `json:"namespace"`
ID string `json:"id"`
FeedState string `json:"state"`
CheckpointTSO uint64 `json:"checkpoint_tso"`
CheckpointTime string `json:"checkpoint_time"`
RunningError *RunningError `json:"error"`
}
ChangefeedCommonInfo holds some common usage information of a changefeed
type Config ¶
type Config struct {
Version bool `json:"-"`
ConfigCheck bool `json:"-"`
ClientUrls string `toml:"client-urls" json:"client-urls"`
PeerUrls string `toml:"peer-urls" json:"peer-urls"`
AdvertiseClientUrls string `toml:"advertise-client-urls" json:"advertise-client-urls"`
AdvertisePeerUrls string `toml:"advertise-peer-urls" json:"advertise-peer-urls"`
Name string `toml:"name" json:"name"`
DataDir string `toml:"data-dir" json:"data-dir"`
ForceNewCluster bool `json:"force-new-cluster"`
EnableGRPCGateway bool `json:"enable-grpc-gateway"`
InitialCluster string `toml:"initial-cluster" json:"initial-cluster"`
InitialClusterState string `toml:"initial-cluster-state" json:"initial-cluster-state"`
InitialClusterToken string `toml:"initial-cluster-token" json:"initial-cluster-token"`
// Join to an existing pd cluster, a string of endpoints.
Join string `toml:"join" json:"join"`
// LeaderLease time, if leader doesn't update its TTL
// in etcd after lease time, etcd will expire the leader key
// and other servers can campaign the leader again.
// Etcd only supports seconds TTL, so here is second too.
LeaderLease int64 `toml:"lease" json:"lease"`
// Log related config.
Log log.Config `toml:"log" json:"log"`
// Backward compatibility.
LogFileDeprecated string `toml:"log-file" json:"log-file,omitempty"`
LogLevelDeprecated string `toml:"log-level" json:"log-level,omitempty"`
// TSOSaveInterval is the interval to save timestamp.
TSOSaveInterval typeutil.Duration `toml:"tso-save-interval" json:"tso-save-interval"`
// The interval to update physical part of timestamp. Usually, this config should not be set.
// At most 1<<18 (262144) TSOs can be generated in the interval. The smaller the value, the
// more TSOs provided, and at the same time consuming more CPU time.
// This config is only valid in 1ms to 10s. If it's configured too long or too short, it will
// be automatically clamped to the range.
TSOUpdatePhysicalInterval typeutil.Duration `toml:"tso-update-physical-interval" json:"tso-update-physical-interval"`
// EnableLocalTSO is used to enable the Local TSO Allocator feature,
// which allows the PD server to generate Local TSO for certain DC-level transactions.
// To make this feature meaningful, user has to set the "zone" label for the PD server
// to indicate which DC this PD belongs to.
EnableLocalTSO bool `toml:"enable-local-tso" json:"enable-local-tso"`
Schedule ScheduleConfig `toml:"schedule" json:"schedule"`
Replication ReplicationConfig `toml:"replication" json:"replication"`
PDServerCfg PDServerConfig `toml:"pd-server" json:"pd-server"`
ClusterVersion semver.Version `toml:"cluster-version" json:"cluster-version"`
// Labels indicates the labels set for **this** PD server. The labels describe some specific properties
// like `zone`/`rack`/`host`. Currently, labels won't affect the PD server except for some special
// label keys. Now we have following special keys:
// 1. 'zone' is a special key that indicates the DC location of this PD server. If it is set, the value for this
// will be used to determine which DC's Local TSO service this PD will provide with if EnableLocalTSO is true.
Labels map[string]string `toml:"labels" json:"labels"`
// QuotaBackendBytes Raise alarms when backend size exceeds the given quota. 0 means use the default quota.
// the default size is 2GB, the maximum is 8GB.
QuotaBackendBytes typeutil.ByteSize `toml:"quota-backend-bytes" json:"quota-backend-bytes"`
// AutoCompactionMode is either 'periodic' or 'revision'. The default value is 'periodic'.
AutoCompactionMode string `toml:"auto-compaction-mode" json:"auto-compaction-mode"`
// AutoCompactionRetention is either duration string with time unit
// (e.g. '5m' for 5-minute), or revision unit (e.g. '5000').
// If no time unit is provided and compaction mode is 'periodic',
// the unit defaults to hour. For example, '5' translates into 5-hour.
// The default retention is 1 hour.
// Before etcd v3.3.x, the type of retention is int. We add 'v2' suffix to make it backward compatible.
AutoCompactionRetention string `toml:"auto-compaction-retention" json:"auto-compaction-retention-v2"`
// TickInterval is the interval for etcd Raft tick.
TickInterval typeutil.Duration `toml:"tick-interval"`
// ElectionInterval is the interval for etcd Raft election.
ElectionInterval typeutil.Duration `toml:"election-interval"`
// Prevote is true to enable Raft Pre-Vote.
// If enabled, Raft runs an additional election phase
// to check whether it would get enough votes to win
// an election, thus minimizing disruptions.
PreVote bool `toml:"enable-prevote"`
MaxRequestBytes uint `toml:"max-request-bytes" json:"max-request-bytes"`
LabelProperty LabelPropertyConfig `toml:"label-property" json:"label-property"`
// For all warnings during parsing.
WarningMsgs []string
DisableStrictReconfigCheck bool
HeartbeatStreamBindInterval typeutil.Duration
LeaderPriorityCheckInterval typeutil.Duration
Dashboard DashboardConfig `toml:"dashboard" json:"dashboard"`
ReplicationMode ReplicationModeConfig `toml:"replication-mode" json:"replication-mode"`
// contains filtered or unexported fields
}
Config is the pd server configuration. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.
type DRAutoSyncReplicationConfig ¶
type DRAutoSyncReplicationConfig struct {
LabelKey string `toml:"label-key" json:"label-key"`
Primary string `toml:"primary" json:"primary"`
DR string `toml:"dr" json:"dr"`
PrimaryReplicas int `toml:"primary-replicas" json:"primary-replicas"`
DRReplicas int `toml:"dr-replicas" json:"dr-replicas"`
WaitStoreTimeout typeutil.Duration `toml:"wait-store-timeout" json:"wait-store-timeout"`
PauseRegionSplit bool `toml:"pause-region-split" json:"pause-region-split,string"`
}
DRAutoSyncReplicationConfig is the configuration for auto sync mode between 2 data centers.
type DashboardConfig ¶
type DashboardConfig struct {
TiDBCAPath string `toml:"tidb-cacert-path" json:"tidb-cacert-path"`
TiDBCertPath string `toml:"tidb-cert-path" json:"tidb-cert-path"`
TiDBKeyPath string `toml:"tidb-key-path" json:"tidb-key-path"`
PublicPathPrefix string `toml:"public-path-prefix" json:"public-path-prefix"`
InternalProxy bool `toml:"internal-proxy" json:"internal-proxy"`
EnableTelemetry bool `toml:"enable-telemetry" json:"enable-telemetry"`
EnableExperimental bool `toml:"enable-experimental" json:"enable-experimental"`
}
DashboardConfig is the configuration for tidb-dashboard.
type Error ¶
type Error struct {
Type ErrorType `protobuf:"varint,1,opt,name=type,proto3,enum=pdpb.ErrorType" json:"type,omitempty"`
Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
type GetMembersResponse ¶
type GetMembersResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
Members []*Member `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
Leader *Member `protobuf:"bytes,3,opt,name=leader,proto3" json:"leader,omitempty"`
EtcdLeader *Member `protobuf:"bytes,4,opt,name=etcd_leader,json=etcdLeader,proto3" json:"etcd_leader,omitempty"`
TsoAllocatorLeaders map[string]*Member `` /* 208-byte string literal not displayed */
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
type HTTPReplicationStatus ¶
type HTTPReplicationStatus struct {
Mode string `json:"mode"`
DrAutoSync struct {
LabelKey string `json:"label_key"`
State string `json:"state"`
StateID uint64 `json:"state_id,omitempty"`
ACIDConsistent bool `json:"acid_consistent"`
TotalRegions int `json:"total_regions,omitempty"`
SyncedRegions int `json:"synced_regions,omitempty"`
RecoverProgress float32 `json:"recover_progress,omitempty"`
} `json:"dr-auto-sync,omitempty"`
}
HTTPReplicationStatus is for query status from HTTP API.
type LabelConstraint ¶
type LabelConstraint struct {
Key string `json:"key,omitempty"`
Op LabelConstraintOp `json:"op,omitempty"`
Values []string `json:"values,omitempty"`
}
LabelConstraint is used to filter store when trying to place peer of a region.
func (*LabelConstraint) MatchStore ¶
func (c *LabelConstraint) MatchStore(store *StoreInfo) bool
MatchStore checks if a store matches the constraint.
type LabelConstraintOp ¶
type LabelConstraintOp string
LabelConstraintOp defines how a LabelConstraint matches a store. It can be one of 'in', 'notIn', 'exists', or 'notExists'.
const ( // In restricts the store label value should in the value list. // If label does not exist, `in` is always false. In LabelConstraintOp = "in" // NotIn restricts the store label value should not in the value list. // If label does not exist, `notIn` is always true. NotIn LabelConstraintOp = "notIn" // Exists restricts the store should have the label. Exists LabelConstraintOp = "exists" // NotExists restricts the store should not have the label. NotExists LabelConstraintOp = "notExists" )
type LabelPropertyConfig ¶
type LabelPropertyConfig map[string][]StoreLabel
LabelPropertyConfig is the config section to set properties to store labels. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.
type ListResponse ¶
ListResponse is the response for all List APIs
type Member ¶
type Member struct {
// name is the name of the PD member.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// member_id is the unique id of the PD member.
MemberId uint64 `protobuf:"varint,2,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"`
PeerUrls []string `protobuf:"bytes,3,rep,name=peer_urls,json=peerUrls,proto3" json:"peer_urls,omitempty"`
ClientUrls []string `protobuf:"bytes,4,rep,name=client_urls,json=clientUrls,proto3" json:"client_urls,omitempty"`
LeaderPriority int32 `protobuf:"varint,5,opt,name=leader_priority,json=leaderPriority,proto3" json:"leader_priority,omitempty"`
DeployPath string `protobuf:"bytes,6,opt,name=deploy_path,json=deployPath,proto3" json:"deploy_path,omitempty"`
BinaryVersion string `protobuf:"bytes,7,opt,name=binary_version,json=binaryVersion,proto3" json:"binary_version,omitempty"`
GitHash string `protobuf:"bytes,8,opt,name=git_hash,json=gitHash,proto3" json:"git_hash,omitempty"`
DcLocation string `protobuf:"bytes,9,opt,name=dc_location,json=dcLocation,proto3" json:"dc_location,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
type PDServerConfig ¶
type PDServerConfig struct {
// UseRegionStorage enables the independent region storage.
UseRegionStorage bool `toml:"use-region-storage" json:"use-region-storage,string"`
// MaxResetTSGap is the max gap to reset the TSO.
MaxResetTSGap typeutil.Duration `toml:"max-gap-reset-ts" json:"max-gap-reset-ts"`
// KeyType is option to specify the type of keys.
// There are some types supported: ["table", "raw", "txn"], default: "table"
KeyType string `toml:"key-type" json:"key-type"`
// RuntimeServices is the running the running extension services.
RuntimeServices typeutil.StringSlice `toml:"runtime-services" json:"runtime-services"`
// MetricStorage is the cluster metric storage.
// Currently we use prometheus as metric storage, we may use PD/TiKV as metric storage later.
MetricStorage string `toml:"metric-storage" json:"metric-storage"`
// There are some values supported: "auto", "none", or a specific address, default: "auto"
DashboardAddress string `toml:"dashboard-address" json:"dashboard-address"`
// TraceRegionFlow the option to update flow information of regions.
// WARN: TraceRegionFlow is deprecated.
TraceRegionFlow bool `toml:"trace-region-flow" json:"trace-region-flow,string,omitempty"`
// FlowRoundByDigit used to discretization processing flow information.
FlowRoundByDigit int `toml:"flow-round-by-digit" json:"flow-round-by-digit"`
// MinResolvedTSPersistenceInterval is the interval to save the min resolved ts.
MinResolvedTSPersistenceInterval typeutil.Duration `toml:"min-resolved-ts-persistence-interval" json:"min-resolved-ts-persistence-interval"`
}
PDServerConfig is the configuration for pd server. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.
type PeerRoleType ¶
type PeerRoleType string
PeerRoleType is the expected peer type of the placement rule.
type ReplicationConfig ¶
type ReplicationConfig struct {
// MaxReplicas is the number of replicas for each region.
MaxReplicas uint64 `toml:"max-replicas" json:"max-replicas"`
// The label keys specified the location of a store.
// The placement priorities is implied by the order of label keys.
// For example, ["zone", "rack"] means that we should place replicas to
// different zones first, then to different racks if we don't have enough zones.
LocationLabels typeutil.StringSlice `toml:"location-labels" json:"location-labels"`
// StrictlyMatchLabel strictly checks if the label of TiKV is matched with LocationLabels.
StrictlyMatchLabel bool `toml:"strictly-match-label" json:"strictly-match-label,string"`
// When PlacementRules feature is enabled. MaxReplicas, LocationLabels and IsolationLabels are not used any more.
EnablePlacementRules bool `toml:"enable-placement-rules" json:"enable-placement-rules,string"`
// EnablePlacementRuleCache controls whether use cache during rule checker
EnablePlacementRulesCache bool `toml:"enable-placement-rules-cache" json:"enable-placement-rules-cache,string"`
// IsolationLevel is used to isolate replicas explicitly and forcibly if it's not empty.
// Its value must be empty or one of LocationLabels.
// Example:
// location-labels = ["zone", "rack", "host"]
// isolation-level = "zone"
// With configuration like above, PD ensure that all replicas be placed in different zones.
// Even if a zone is down, PD will not try to make up replicas in other zone
// because other zones already have replicas on it.
IsolationLevel string `toml:"isolation-level" json:"isolation-level"`
}
ReplicationConfig is the replication configuration. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.
type ReplicationModeConfig ¶
type ReplicationModeConfig struct {
ReplicationMode string `toml:"replication-mode" json:"replication-mode"` // can be 'dr-auto-sync' or 'majority', default value is 'majority'
DRAutoSync DRAutoSyncReplicationConfig `toml:"dr-auto-sync" json:"dr-auto-sync"` // used when ReplicationMode is 'dr-auto-sync'
}
ReplicationModeConfig is the configuration for the replication policy. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.
type ResponseHeader ¶
type ResponseHeader struct {
// cluster_id is the ID of the cluster which sent the response.
ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
Error *Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
type Rule ¶
type Rule struct {
GroupID string `json:"group_id"` // mark the source that add the rule
ID string `json:"id"` // unique ID within a group
Index int `json:"index,omitempty"` // rule apply order in a group, rule with less ID is applied first when indexes are equal
Override bool `json:"override,omitempty"` // when it is true, all rules with less indexes are disabled
StartKey []byte `json:"-"` // range start key
StartKeyHex string `json:"start_key"` // hex format start key, for marshal/unmarshal
EndKey []byte `json:"-"` // range end key
EndKeyHex string `json:"end_key"` // hex format end key, for marshal/unmarshal
Role PeerRoleType `json:"role"` // expected role of the peers
IsWitness bool `json:"is_witness"` // when it is true, it means the role is also a witness
Count int `json:"count"` // expected count of the peers
LabelConstraints []LabelConstraint `json:"label_constraints,omitempty"` // used to select stores to place peers
LocationLabels []string `json:"location_labels,omitempty"` // used to make peers isolated physically
IsolationLevel string `json:"isolation_level,omitempty"` // used to isolate replicas explicitly and forcibly
Version uint64 `json:"version,omitempty"` // only set at runtime, add 1 each time rules updated, begin from 0.
CreateTimestamp uint64 `json:"create_timestamp,omitempty"` // only set at runtime, recorded rule create timestamp
}
Rule is the placement rule that can be checked against a region. When applying rules (apply means schedule regions to match selected rules), the apply order is defined by the tuple [GroupIndex, GroupID, Index, ID].
NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.
type RunningError ¶
type RunningError struct {
Time time.Time `json:"time"`
Addr string `json:"addr"`
Code string `json:"code"`
Message string `json:"message"`
}
RunningError represents some running error from cdc components, such as processor.
type ScheduleConfig ¶
type ScheduleConfig struct {
// If the snapshot count of one store is greater than this value,
// it will never be used as a source or target store.
MaxSnapshotCount uint64 `toml:"max-snapshot-count" json:"max-snapshot-count"`
MaxPendingPeerCount uint64 `toml:"max-pending-peer-count" json:"max-pending-peer-count"`
// If both the size of region is smaller than MaxMergeRegionSize
// and the number of rows in region is smaller than MaxMergeRegionKeys,
// it will try to merge with adjacent regions.
MaxMergeRegionSize uint64 `toml:"max-merge-region-size" json:"max-merge-region-size"`
MaxMergeRegionKeys uint64 `toml:"max-merge-region-keys" json:"max-merge-region-keys"`
// SplitMergeInterval is the minimum interval time to permit merge after split.
SplitMergeInterval typeutil.Duration `toml:"split-merge-interval" json:"split-merge-interval"`
// SwitchWitnessInterval is the minimum interval that allows a peer to become a witness again after it is promoted to non-witness.
SwitchWitnessInterval typeutil.Duration `toml:"switch-witness-interval" json:"swtich-witness-interval"`
// EnableOneWayMerge is the option to enable one way merge. This means a Region can only be merged into the next region of it.
EnableOneWayMerge bool `toml:"enable-one-way-merge" json:"enable-one-way-merge,string"`
// EnableCrossTableMerge is the option to enable cross table merge. This means two Regions can be merged with different table IDs.
// This option only works when key type is "table".
EnableCrossTableMerge bool `toml:"enable-cross-table-merge" json:"enable-cross-table-merge,string"`
// PatrolRegionInterval is the interval for scanning region during patrol.
PatrolRegionInterval typeutil.Duration `toml:"patrol-region-interval" json:"patrol-region-interval"`
// MaxStoreDownTime is the max duration after which
// a store will be considered to be down if it hasn't reported heartbeats.
MaxStoreDownTime typeutil.Duration `toml:"max-store-down-time" json:"max-store-down-time"`
// MaxStorePreparingTime is the max duration after which
// a store will be considered to be preparing.
MaxStorePreparingTime typeutil.Duration `toml:"max-store-preparing-time" json:"max-store-preparing-time"`
// LeaderScheduleLimit is the max coexist leader schedules.
LeaderScheduleLimit uint64 `toml:"leader-schedule-limit" json:"leader-schedule-limit"`
// LeaderSchedulePolicy is the option to balance leader, there are some policies supported: ["count", "size"], default: "count"
LeaderSchedulePolicy string `toml:"leader-schedule-policy" json:"leader-schedule-policy"`
// RegionScheduleLimit is the max coexist region schedules.
RegionScheduleLimit uint64 `toml:"region-schedule-limit" json:"region-schedule-limit"`
// ReplicaScheduleLimit is the max coexist replica schedules.
ReplicaScheduleLimit uint64 `toml:"replica-schedule-limit" json:"replica-schedule-limit"`
// MergeScheduleLimit is the max coexist merge schedules.
MergeScheduleLimit uint64 `toml:"merge-schedule-limit" json:"merge-schedule-limit"`
// HotRegionScheduleLimit is the max coexist hot region schedules.
HotRegionScheduleLimit uint64 `toml:"hot-region-schedule-limit" json:"hot-region-schedule-limit"`
// HotRegionCacheHitThreshold is the cache hits threshold of the hot region.
// If the number of times a region hits the hot cache is greater than this
// threshold, it is considered a hot region.
HotRegionCacheHitsThreshold uint64 `toml:"hot-region-cache-hits-threshold" json:"hot-region-cache-hits-threshold"`
// StoreBalanceRate is the maximum of balance rate for each store.
// WARN: StoreBalanceRate is deprecated.
StoreBalanceRate float64 `toml:"store-balance-rate" json:"store-balance-rate,omitempty"`
// StoreLimit is the limit of scheduling for stores.
StoreLimit map[uint64]StoreLimitConfig `toml:"store-limit" json:"store-limit"`
// TolerantSizeRatio is the ratio of buffer size for balance scheduler.
TolerantSizeRatio float64 `toml:"tolerant-size-ratio" json:"tolerant-size-ratio"`
//
// high space stage transition stage low space stage
// |--------------------|-----------------------------|-------------------------|
// ^ ^ ^ ^
// 0 HighSpaceRatio * capacity LowSpaceRatio * capacity capacity
//
// LowSpaceRatio is the lowest usage ratio of store which regraded as low space.
// When in low space, store region score increases to very large and varies inversely with available size.
LowSpaceRatio float64 `toml:"low-space-ratio" json:"low-space-ratio"`
// HighSpaceRatio is the highest usage ratio of store which regraded as high space.
// High space means there is a lot of spare capacity, and store region score varies directly with used size.
HighSpaceRatio float64 `toml:"high-space-ratio" json:"high-space-ratio"`
// RegionScoreFormulaVersion is used to control the formula used to calculate region score.
RegionScoreFormulaVersion string `toml:"region-score-formula-version" json:"region-score-formula-version"`
// SchedulerMaxWaitingOperator is the max coexist operators for each scheduler.
SchedulerMaxWaitingOperator uint64 `toml:"scheduler-max-waiting-operator" json:"scheduler-max-waiting-operator"`
// WARN: DisableLearner is deprecated.
// DisableLearner is the option to disable using AddLearnerNode instead of AddNode.
DisableLearner bool `toml:"disable-raft-learner" json:"disable-raft-learner,string,omitempty"`
// DisableRemoveDownReplica is the option to prevent replica checker from
// removing down replicas.
// WARN: DisableRemoveDownReplica is deprecated.
DisableRemoveDownReplica bool `toml:"disable-remove-down-replica" json:"disable-remove-down-replica,string,omitempty"`
// DisableReplaceOfflineReplica is the option to prevent replica checker from
// replacing offline replicas.
// WARN: DisableReplaceOfflineReplica is deprecated.
DisableReplaceOfflineReplica bool `toml:"disable-replace-offline-replica" json:"disable-replace-offline-replica,string,omitempty"`
// DisableMakeUpReplica is the option to prevent replica checker from making up
// replicas when replica count is less than expected.
// WARN: DisableMakeUpReplica is deprecated.
DisableMakeUpReplica bool `toml:"disable-make-up-replica" json:"disable-make-up-replica,string,omitempty"`
// DisableRemoveExtraReplica is the option to prevent replica checker from
// removing extra replicas.
// WARN: DisableRemoveExtraReplica is deprecated.
DisableRemoveExtraReplica bool `toml:"disable-remove-extra-replica" json:"disable-remove-extra-replica,string,omitempty"`
// DisableLocationReplacement is the option to prevent replica checker from
// moving replica to a better location.
// WARN: DisableLocationReplacement is deprecated.
DisableLocationReplacement bool `toml:"disable-location-replacement" json:"disable-location-replacement,string,omitempty"`
// EnableRemoveDownReplica is the option to enable replica checker to remove down replica.
EnableRemoveDownReplica bool `toml:"enable-remove-down-replica" json:"enable-remove-down-replica,string"`
// EnableReplaceOfflineReplica is the option to enable replica checker to replace offline replica.
EnableReplaceOfflineReplica bool `toml:"enable-replace-offline-replica" json:"enable-replace-offline-replica,string"`
// EnableMakeUpReplica is the option to enable replica checker to make up replica.
EnableMakeUpReplica bool `toml:"enable-make-up-replica" json:"enable-make-up-replica,string"`
// EnableRemoveExtraReplica is the option to enable replica checker to remove extra replica.
EnableRemoveExtraReplica bool `toml:"enable-remove-extra-replica" json:"enable-remove-extra-replica,string"`
// EnableLocationReplacement is the option to enable replica checker to move replica to a better location.
EnableLocationReplacement bool `toml:"enable-location-replacement" json:"enable-location-replacement,string"`
// EnableDebugMetrics is the option to enable debug metrics.
EnableDebugMetrics bool `toml:"enable-debug-metrics" json:"enable-debug-metrics,string"`
// EnableJointConsensus is the option to enable using joint consensus as a operator step.
EnableJointConsensus bool `toml:"enable-joint-consensus" json:"enable-joint-consensus,string"`
// EnableTiKVSplitRegion is the option to enable tikv split region.
// on ebs-based BR we need to disable it with TTL
EnableTiKVSplitRegion bool `toml:"enable-tikv-split-region" json:"enable-tikv-split-region,string"`
// Schedulers support for loading customized schedulers
Schedulers SchedulerConfigs `toml:"schedulers" json:"schedulers-v2"` // json v2 is for the sake of compatible upgrade
// Only used to display
SchedulersPayload map[string]interface{} `toml:"schedulers-payload" json:"schedulers-payload"`
// StoreLimitMode can be auto or manual, when set to auto,
// PD tries to change the store limit values according to
// the load state of the cluster dynamically. User can
// overwrite the auto-tuned value by pd-ctl, when the value
// is overwritten, the value is fixed until it is deleted.
// Default: manual
StoreLimitMode string `toml:"store-limit-mode" json:"store-limit-mode"`
// Controls the time interval between write hot regions info into leveldb.
HotRegionsWriteInterval typeutil.Duration `toml:"hot-regions-write-interval" json:"hot-regions-write-interval"`
// The day of hot regions data to be reserved. 0 means close.
HotRegionsReservedDays uint64 `toml:"hot-regions-reserved-days" json:"hot-regions-reserved-days"`
// MaxMovableHotPeerSize is the threshold of region size for balance hot region and split bucket scheduler.
// Hot region must be split before moved if it's region size is greater than MaxMovableHotPeerSize.
MaxMovableHotPeerSize int64 `toml:"max-movable-hot-peer-size" json:"max-movable-hot-peer-size,omitempty"`
// EnableDiagnostic is the the option to enable using diagnostic
EnableDiagnostic bool `toml:"enable-diagnostic" json:"enable-diagnostic,string"`
// EnableWitness is the option to enable using witness
EnableWitness bool `toml:"enable-witness" json:"enable-witness,string"`
// HaltScheduling is the option to halt the scheduling. Once it's on, PD will halt the scheduling,
// and any other scheduling configs will be ignored.
HaltScheduling bool `toml:"halt-scheduling" json:"halt-scheduling,string,omitempty"`
}
ScheduleConfig is the schedule configuration. NOTE: This type is exported by HTTP API. Please pay more attention when modifying it.
type SchedulerConfig ¶
type SchedulerConfig struct {
Type string `toml:"type" json:"type"`
Args []string `toml:"args" json:"args"`
Disable bool `toml:"disable" json:"disable"`
ArgsPayload string `toml:"args-payload" json:"args-payload"`
}
SchedulerConfig is customized scheduler configuration
type SchedulerConfigs ¶
type SchedulerConfigs []SchedulerConfig
SchedulerConfigs is a slice of customized scheduler configuration.
type StoreInfo ¶
type StoreInfo struct {
Store *MetaStore `json:"store"`
Status *StoreStatus `json:"status"`
}
StoreInfo contains information about a store.
func (*StoreInfo) GetLabelValue ¶
GetLabelValue returns a label's value (if exists).
type StoreLabel ¶
type StoreLabel struct {
Key string `toml:"key" json:"key"`
Value string `toml:"value" json:"value"`
}
StoreLabel is the config item of LabelPropertyConfig.
type StoreLimitConfig ¶
type StoreLimitConfig struct {
AddPeer float64 `toml:"add-peer" json:"add-peer"`
RemovePeer float64 `toml:"remove-peer" json:"remove-peer"`
}
StoreLimitConfig is a config about scheduling rate limit of different types for a store.
type StoreStatus ¶
type StoreStatus struct {
Capacity typeutil.ByteSize `json:"capacity"`
Available typeutil.ByteSize `json:"available"`
UsedSize typeutil.ByteSize `json:"used_size"`
LeaderCount int `json:"leader_count"`
LeaderWeight float64 `json:"leader_weight"`
LeaderScore float64 `json:"leader_score"`
LeaderSize int64 `json:"leader_size"`
RegionCount int `json:"region_count"`
RegionWeight float64 `json:"region_weight"`
RegionScore float64 `json:"region_score"`
RegionSize int64 `json:"region_size"`
LearnerCount int `json:"learner_count,omitempty"`
WitnessCount int `json:"witness_count,omitempty"`
SlowScore uint64 `json:"slow_score,omitempty"`
SendingSnapCount uint32 `json:"sending_snap_count,omitempty"`
ReceivingSnapCount uint32 `json:"receiving_snap_count,omitempty"`
IsBusy bool `json:"is_busy,omitempty"`
StartTS *time.Time `json:"start_ts,omitempty"`
LastHeartbeatTS *time.Time `json:"last_heartbeat_ts,omitempty"`
Uptime *typeutil.Duration `json:"uptime,omitempty"`
}
StoreStatus contains status about a store.
type StoresInfo ¶
StoresInfo records stores' info.