proto

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2024 License: Apache-2.0, MIT, MPL-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PdComponentName                   ComponentName = "PdConfig"
	TidbComponentName                 ComponentName = "TidbConfig"
	TikvComponentName                 ComponentName = "TikvConfig"
	TiflashComponentName              ComponentName = "TiflashConfig"
	PerformanceDashboardComponentName ComponentName = "performance.dashboard"

	ConfigType        = "config"
	PerformanceType   = "performance"
	DefaultConfigType = "defaultConfig"
)
View Source
const RejectLeader = "reject-leader"

RejectLeader is the label property type that suggests a store should not have any region leaders.

Variables

View Source
var CheckTypeOrder = map[string]int{
	ConfigType:        0,
	PerformanceType:   1,
	DefaultConfigType: 2,
}

Functions

This section is empty.

Types

type AsyncCommit

type AsyncCommit struct {
	// Use async commit only if the number of keys does not exceed KeysLimit.
	KeysLimit uint `toml:"keys-limit" json:"keys-limit"`
	// Use async commit only if the total size of keys does not exceed TotalKeySizeLimit.
	TotalKeySizeLimit uint64 `toml:"total-key-size-limit" json:"total-key-size-limit"`
	// The duration within which is safe for async commit or 1PC to commit with an old schema.
	// The following two fields should NOT be modified in most cases. If both async commit
	// and 1PC are disabled in the whole cluster, they can be set to zero to avoid waiting in DDLs.
	SafeWindow time.Duration `toml:"safe-window" json:"safe-window"`
	// The duration in addition to SafeWindow to make DDL safe.
	AllowedClockDrift time.Duration `toml:"allowed-clock-drift" json:"allowed-clock-drift"`
}

AsyncCommit is the config for the async commit feature. The switch to enable it is a system variable.

type Binlog

type Binlog struct {
	Enable bool `toml:"enable" json:"enable"`
	// If IgnoreError is true, when writing binlog meets error, TiDB would
	// ignore the error.
	IgnoreError  bool   `toml:"ignore-error" json:"ignore-error"`
	WriteTimeout string `toml:"write-timeout" json:"write-timeout"`
	// Use socket file to write binlog, for compatible with kafka version tidb-binlog.
	BinlogSocket string `toml:"binlog-socket" json:"binlog-socket"`
	// The strategy for sending binlog to pump, value can be "range" or "hash" now.
	Strategy string `toml:"strategy" json:"strategy"`
}

Binlog is the config for binlog.

type CFConfig

type CFConfig struct {
	BlockSize                           string   `toml:"block-size" json:"block-size"`
	BlockCacheSize                      string   `toml:"block-cache-size" json:"block-cache-size"`
	DisableBlockCache                   bool     `toml:"disable-block-cache" json:"disable-block-cache"`
	CacheIndexAndFilterBlocks           bool     `toml:"cache-index-and-filter-blocks" json:"cache-index-and-filter-blocks"`
	PinL0FilterAndIndexBlocks           bool     `toml:"pin-l0-filter-and-index-blocks" json:"pin-l0-filter-and-index-blocks"`
	UseBloomFilter                      bool     `toml:"use-bloom-filter" json:"use-bloom-filter"`
	OptimizeFiltersForHits              bool     `toml:"optimize-filters-for-hits" json:"optimize-filters-for-hits"`
	WholeKeyFiltering                   bool     `toml:"whole-key-filtering" json:"whole-key-filtering"`
	BloomFilterBitsPerKey               int      `toml:"bloom-filter-bits-per-key" json:"bloom-filter-bits-per-key"`
	BlockBasedBloomFilter               bool     `toml:"block-based-bloom-filter" json:"block-based-bloom-filter"`
	ReadAmpBytesPerBit                  int      `toml:"read-amp-bytes-per-bit" json:"read-amp-bytes-per-bit"`
	CompressionPerLevel                 []string `toml:"compression-per-level" json:"compression-per-level"`
	WriteBufferSize                     string   `toml:"write-buffer-size" json:"write-buffer-size"`
	MaxWriteBufferNumber                int      `toml:"max-write-buffer-number" json:"max-write-buffer-number"`
	MinWriteBufferNumberToMerge         int      `toml:"min-write-buffer-number-to-merge" json:"min-write-buffer-number-to-merge"`
	MaxBytesForLevelBase                string   `toml:"max-bytes-for-level-base" json:"max-bytes-for-level-base"`
	TargetFileSizeBase                  string   `toml:"target-file-size-base" json:"target-file-size-base"`
	Level0FileNumCompactionTrigger      int      `toml:"level0-file-num-compaction-trigger" json:"level0-file-num-compaction-trigger"`
	Level0SlowdownWritesTrigger         int      `toml:"level0-slowdown-writes-trigger" json:"level0-slowdown-writes-trigger"`
	Level0StopWritesTrigger             int      `toml:"level0-stop-writes-trigger" json:"level0-stop-writes-trigger"`
	MaxCompactionBytes                  string   `toml:"max-compaction-bytes" json:"max-compaction-bytes"`
	CompactionPri                       int      `toml:"compaction-pri" json:"compaction-pri"`
	DynamicLevelBytes                   bool     `toml:"dynamic-level-bytes" json:"dynamic-level-bytes"`
	NumLevels                           int      `toml:"num-levels" json:"num-levels"`
	MaxBytesForLevelMultiplier          int      `toml:"max-bytes-for-level-multiplier" json:"max-bytes-for-level-multiplier"`
	CompactionStyle                     int      `toml:"compaction-style" json:"compaction-style"`
	DisableAutoCompactions              bool     `toml:"disable-auto-compactions" json:"disable-auto-compactions"`
	DisableWriteStall                   bool     `toml:"disable-write-stall" json:"disable-write-stall"`
	SoftPendingCompactionBytesLimit     string   `toml:"soft-pending-compaction-bytes-limit" json:"soft-pending-compaction-bytes-limit"`
	HardPendingCompactionBytesLimit     string   `toml:"hard-pending-compaction-bytes-limit" json:"hard-pending-compaction-bytes-limit"`
	ForceConsistencyChecks              bool     `toml:"force-consistency-checks" json:"force-consistency-checks"`
	PropSizeIndexDistance               int      `toml:"prop-size-index-distance" json:"prop-size-index-distance"`
	PropKeysIndexDistance               int      `toml:"prop-keys-index-distance" json:"prop-keys-index-distance"`
	EnableDoublySkiplist                bool     `toml:"enable-doubly-skiplist" json:"enable-doubly-skiplist"`
	EnableCompactionGuard               bool     `toml:"enable-compaction-guard" json:"enable-compaction-guard"`
	CompactionGuardMinOutputFileSize    string   `toml:"compaction-guard-min-output-file-size" json:"compaction-guard-min-output-file-size"`
	CompactionGuardMaxOutputFileSize    string   `toml:"compaction-guard-max-output-file-size" json:"compaction-guard-max-output-file-size"`
	BottommostLevelCompression          string   `toml:"bottommost-level-compression" json:"bottommost-level-compression"`
	BottommostZstdCompressionDictSize   int      `toml:"bottommost-zstd-compression-dict-size" json:"bottommost-zstd-compression-dict-size"`
	BottommostZstdCompressionSampleSize int      `toml:"bottommost-zstd-compression-sample-size" json:"bottommost-zstd-compression-sample-size"`
	Titan                               struct {
		MinBlobSize             string  `toml:"min-blob-size" json:"min-blob-size"`
		BlobFileCompression     string  `toml:"blob-file-compression" json:"blob-file-compression"`
		BlobCacheSize           string  `toml:"blob-cache-size" json:"blob-cache-size"`
		MinGcBatchSize          string  `toml:"min-gc-batch-size" json:"min-gc-batch-size"`
		MaxGcBatchSize          string  `toml:"max-gc-batch-size" json:"max-gc-batch-size"`
		DiscardableRatio        float64 `toml:"discardable-ratio" json:"discardable-ratio"`
		SampleRatio             float64 `toml:"sample-ratio" json:"sample-ratio"`
		MergeSmallFileThreshold string  `toml:"merge-small-file-threshold" json:"merge-small-file-threshold"`
		BlobRunMode             string  `toml:"blob-run-mode" json:"blob-run-mode"`
		LevelMerge              bool    `toml:"level-merge" json:"level-merge"`
		RangeMerge              bool    `toml:"range-merge" json:"range-merge"`
		MaxSortedRuns           int     `toml:"max-sorted-runs" json:"max-sorted-runs"`
		GcMergeRewrite          bool    `toml:"gc-merge-rewrite" json:"gc-merge-rewrite"`
	} `toml:"titan" json:"titan"`
}

type ComponentName

type ComponentName = string

type ConfInfo

type ConfInfo struct {
	UniTag      string `header:"UniTag"`
	Val         string `header:"val"`
	CheckResult string `header:"CheckResult"`
}

type ConfPrintTemplate

type ConfPrintTemplate struct {
	Rule     *Rule
	InfoList []*ConfInfo
}

func NewConfPrintTemplate

func NewConfPrintTemplate(rule *Rule) *ConfPrintTemplate

func (*ConfPrintTemplate) CollectResult

func (c *ConfPrintTemplate) CollectResult(hd *HandleData, retValue interface{}) error

func (*ConfPrintTemplate) GetValStr

func (c *ConfPrintTemplate) GetValStr(hd *HandleData) string

func (*ConfPrintTemplate) Print

func (c *ConfPrintTemplate) Print(out io.Writer)

func (*ConfPrintTemplate) ResultAbnormal

func (c *ConfPrintTemplate) ResultAbnormal() bool

func (*ConfPrintTemplate) SplitComponentAndPath

func (c *ConfPrintTemplate) SplitComponentAndPath(_ string) map[string][]string

type Config

type Config interface {
	GetComponent() string
	GetPort() int
	GetHost() string
	CheckNil() bool
	ActingName() string
	// GetValueByTagPath is used in gengine
	GetValueByTagPath(tagPath string) reflect.Value
}

type CoprocessorCache

type CoprocessorCache struct {
	// The capacity in MB of the cache. Zero means disable coprocessor cache.
	CapacityMB float64 `toml:"capacity-mb" json:"capacity-mb"`

	// Only cache requests that containing small number of ranges. May to be changed in future.
	AdmissionMaxRanges uint64 `toml:"admission-max-ranges" json:"-"`
	// Only cache requests whose result set is small.
	AdmissionMaxResultMB float64 `toml:"admission-max-result-mb" json:"-"`
	// Only cache requests takes notable time to process.
	AdmissionMinProcessMs uint64 `toml:"admission-min-process-ms" json:"-"`
}

CoprocessorCache is the config for coprocessor cache.

type CoprocessorConfig

type CoprocessorConfig struct {
	SplitRegionOnTable     bool   `toml:"split-region-on-table" json:"split-region-on-table"`
	BatchSplitLimit        int    `toml:"batch-split-limit" json:"batch-split-limit"`
	RegionMaxSize          string `toml:"region-max-size" json:"region-max-size"`
	RegionSplitSize        string `toml:"region-split-size" json:"region-split-size"`
	RegionMaxKeys          int    `toml:"region-max-keys" json:"region-max-keys"`
	RegionSplitKeys        int    `toml:"region-split-keys" json:"region-split-keys"`
	ConsistencyCheckMethod string `toml:"consistency-check-method" json:"consistency-check-method"`
	PerfLevel              int    `toml:"perf-level" json:"perf-level"`
}

type DashboardData

type DashboardData struct {
	ExecutionPlanInfoList map[string][2]ExecutionPlanInfo // e.g {"xsdfasdf22sdf": {{min_execution_info}, {max_execution_info}}}
	OldVersionProcesskey  struct {
		GcLifeTime int // s
		Count      int
	}
	TombStoneStatistics struct {
		Count int
	}
}

func (*DashboardData) ActingName

func (d *DashboardData) ActingName() string

type Data

type Data interface {
	ActingName() string
}

todo@toto add check nil and how to format nil result

type DeviceData

type DeviceData struct{}

type DigestPair

type DigestPair struct {
	Digest     string
	PlanDigest string
}

type ExecutionPlanInfo

type ExecutionPlanInfo struct {
	PlanDigest     string
	MaxLastTime    int64
	AvgProcessTime int64 // ms
}

type HandleData

type HandleData struct {
	UqiTag  string
	Data    []Data
	IsValid bool
}

func NewHandleData

func NewHandleData(ds []Data) *HandleData

type LabelPropertyConfig

type LabelPropertyConfig map[string][]StoreLabel

LabelPropertyConfig is the config section to set properties to store labels.

type Log

type Log struct {
	// Log level.
	Level string `toml:"level" json:"level"`
	// Log format, one of json or text.
	Format string `toml:"format" json:"format"`
	// Disable automatic timestamps in output. Deprecated: use EnableTimestamp instead.
	DisableTimestamp nullableBool `toml:"disable-timestamp" json:"disable-timestamp"`
	// EnableTimestamp enables automatic timestamps in log output.
	EnableTimestamp nullableBool `toml:"enable-timestamp" json:"enable-timestamp"`
	// DisableErrorStack stops annotating logs with the full stack error
	// message. Deprecated: use EnableErrorStack instead.
	DisableErrorStack nullableBool `toml:"disable-error-stack" json:"disable-error-stack"`
	// EnableErrorStack enables annotating logs with the full stack error
	// message.
	EnableErrorStack nullableBool `toml:"enable-error-stack" json:"enable-error-stack"`
	// File log config.
	File struct {
		Filename   string `json:"filename"`
		MaxSize    int    `json:"max-size"`
		MaxDays    int    `json:"max-days"`
		MaxBackups int    `json:"max-backups"`
	} `toml:"file" json:"file"`

	EnableSlowLog       bool   `toml:"enable-slow-log" json:"enable-slow-log"`
	SlowQueryFile       string `toml:"slow-query-file" json:"slow-query-file"`
	SlowThreshold       uint64 `toml:"slow-threshold" json:"slow-threshold"`
	ExpensiveThreshold  uint   `toml:"expensive-threshold" json:"expensive-threshold"`
	QueryLogMaxLen      uint64 `toml:"query-log-max-len" json:"query-log-max-len"`
	RecordPlanInSlowLog uint32 `toml:"record-plan-in-slow-log" json:"record-plan-in-slow-log"`
}

Log is the log section of config.

type NodeData

type NodeData struct {
	ID         string
	Timestamp  string
	Configs    []Config
	DeviceData DeviceData
}

type OpenTracing

type OpenTracing struct {
	Enable     bool                `toml:"enable" json:"enable"`
	RPCMetrics bool                `toml:"rpc-metrics" json:"rpc-metrics"`
	Sampler    OpenTracingSampler  `toml:"sampler" json:"sampler"`
	Reporter   OpenTracingReporter `toml:"reporter" json:"reporter"`
}

OpenTracing is the opentracing section of the config.

type OpenTracingReporter

type OpenTracingReporter struct {
	QueueSize           int           `toml:"queue-size" json:"queue-size"`
	BufferFlushInterval time.Duration `toml:"buffer-flush-interval" json:"buffer-flush-interval"`
	LogSpans            bool          `toml:"log-spans" json:"log-spans"`
	LocalAgentHostPort  string        `toml:"local-agent-host-port" json:"local-agent-host-port"`
}

OpenTracingReporter is the config for opentracing reporter. See https://godoc.org/github.com/uber/jaeger-client-go/config#ReporterConfig

type OpenTracingSampler

type OpenTracingSampler struct {
	Type                    string        `toml:"type" json:"type"`
	Param                   float64       `toml:"param" json:"param"`
	SamplingServerURL       string        `toml:"sampling-server-url" json:"sampling-server-url"`
	MaxOperations           int           `toml:"max-operations" json:"max-operations"`
	SamplingRefreshInterval time.Duration `toml:"sampling-refresh-interval" json:"sampling-refresh-interval"`
}

OpenTracingSampler is the config for opentracing sampler. See https://godoc.org/github.com/uber/jaeger-client-go/config#SamplerConfig

type OutputMetaData

type OutputMetaData struct {
	ClusterName string
	TidbVersion string
	ActionID    string
	SampleData  Sample
}

type PDConfig

type PDConfig struct {
	Endpoints        []string `toml:"endpoints" json:"endpoints"`
	RetryInterval    string   `toml:"retry-interval" json:"retry-interval"`
	RetryMaxCount    int64    `toml:"retry-max-count" json:"retry-max-count"`
	RetryLogEvery    int      `toml:"retry-log-every" json:"retry-log-every"`
	UpdateInterval   string   `toml:"update-interval" json:"update-interval"`
	EnableForwarding bool     `toml:"enable-forwarding" json:"enable-forwarding"`
}

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 string `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"`
}

PDServerConfig is the configuration for pd server.

type PdConfig

type PdConfig struct {
	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   `toml:"force-new-cluster" json:"force-new-cluster"`
	EnableGrpcGateway   bool   `toml:"enable-grpc-gateway" 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                string `toml:"join" json:"join"`
	Lease               int    `toml:"lease" json:"lease"`
	Log                 struct {
		Level            string `toml:"level" json:"level"`
		Format           string `toml:"format" json:"format"`
		DisableTimestamp bool   `toml:"disable-timestamp" json:"disable-timestamp"`
		File             struct {
			Filename   string `toml:"filename" json:"filename"`
			MaxSize    int    `toml:"max-size" json:"max-size"`
			MaxDays    int    `toml:"max-days" json:"max-days"`
			MaxBackups int    `toml:"max-backups" json:"max-backups"`
		} `toml:"file" json:"file"`
		Development         bool                `toml:"development" json:"development"`
		DisableCaller       bool                `toml:"disable-caller" json:"disable-caller"`
		DisableStacktrace   bool                `toml:"disable-stacktrace" json:"disable-stacktrace"`
		DisableErrorVerbose bool                `toml:"disable-error-verbose" json:"disable-error-verbose"`
		Sampling            *zap.SamplingConfig `toml:"sampling" json:"sampling"`
	} `toml:"log" json:"log"`
	TsoSaveInterval           string `toml:"tso-save-interval" json:"tso-save-interval"`
	TsoUpdatePhysicalInterval string `toml:"tso-update-physical-interval" json:"tso-update-physical-interval"`
	EnableLocalTso            bool   `toml:"enable-local-tso" json:"enable-local-tso"`
	Metric                    struct {
		Job      string `toml:"job" json:"job"`
		Address  string `toml:"address" json:"address"`
		Interval string `toml:"interval" json:"interval"`
	} `toml:"metric" json:"metric"`
	Schedule                  ScheduleConfig    `toml:"schedule" json:"schedule"`
	Replication               ReplicationConfig `toml:"replication" json:"replication"`
	PdServer                  PDServerConfig    `toml:"pd-server" json:"pd-server"`
	ClusterVersion            string            `toml:"cluster-version" json:"cluster-version"`
	Labels                    map[string]string `toml:"labels" json:"labels"`
	QuotaBackendBytes         string            `toml:"quota-backend-bytes" json:"quota-backend-bytes"`
	AutoCompactionMode        string            `toml:"auto-compaction-mode" json:"auto-compaction-mode"`
	AutoCompactionRetentionV2 string            `toml:"auto-compaction-retention-v2" json:"auto-compaction-retention-v2"`
	TickInterval              string            `toml:"TickInterval" json:"TickInterval"`
	ElectionInterval          string            `toml:"ElectionInterval" json:"ElectionInterval"`
	PreVote                   bool              `toml:"PreVote" json:"PreVote"`
	Security                  struct {
		CacertPath    string   `toml:"cacert-path" json:"cacert-path"`
		CertPath      string   `toml:"cert-path" json:"cert-path"`
		KeyPath       string   `toml:"key-path" json:"key-path"`
		CertAllowedCn []string `toml:"cert-allowed-cn" json:"cert-allowed-cn"`
		RedactInfoLog bool     `toml:"redact-info-log" json:"redact-info-log"`
		Encryption    struct {
			DataEncryptionMethod  string `toml:"data-encryption-method" json:"data-encryption-method"`
			DataKeyRotationPeriod string `toml:"data-key-rotation-period" json:"data-key-rotation-period"`
			MasterKey             struct {
				Type     string `toml:"type" json:"type"`
				KeyID    string `toml:"key-id" json:"key-id"`
				Region   string `toml:"region" json:"region"`
				Endpoint string `toml:"endpoint" json:"endpoint"`
				Path     string `toml:"path" json:"path"`
			} `toml:"master-key" json:"master-key"`
		} `toml:"encryption" json:"encryption"`
	} `toml:"security" json:"security"`
	LabelProperty               LabelPropertyConfig `toml:"label-property" json:"label-property"`
	WarningMsgs                 []string            `toml:"WarningMsgs" json:"WarningMsgs"`
	DisableStrictReconfigCheck  bool                `toml:"DisableStrictReconfigCheck" json:"DisableStrictReconfigCheck"`
	HeartbeatStreamBindInterval string              `toml:"HeartbeatStreamBindInterval" json:"HeartbeatStreamBindInterval"`
	LeaderPriorityCheckInterval string              `toml:"LeaderPriorityCheckInterval" json:"LeaderPriorityCheckInterval"`
	Dashboard                   struct {
		TidbCacertPath     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"`
	} `toml:"dashboard" json:"dashboard"`
	ReplicationMode struct {
		ReplicationMode string `toml:"replication-mode" json:"replication-mode"`
		DrAutoSync      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 string `toml:"wait-store-timeout" json:"wait-store-timeout"`
			WaitSyncTimeout  string `toml:"wait-sync-timeout" json:"wait-sync-timeout"`
			WaitAsyncTimeout string `toml:"wait-async-timeout" json:"wait-async-timeout"`
		} `toml:"dr-auto-sync" json:"dr-auto-sync"`
	} `toml:"replication-mode" json:"replication-mode"`
}

type PdConfigData

type PdConfigData struct {
	*PdConfig
	Port int // TODO move to meta
	Host string
}

func NewPdConfigData

func NewPdConfigData() *PdConfigData

func (*PdConfigData) ActingName

func (cfg *PdConfigData) ActingName() string

func (*PdConfigData) CheckNil

func (cfg *PdConfigData) CheckNil() bool

func (*PdConfigData) GetComponent

func (cfg *PdConfigData) GetComponent() string

func (*PdConfigData) GetHost

func (cfg *PdConfigData) GetHost() string

func (*PdConfigData) GetPort

func (cfg *PdConfigData) GetPort() int

func (*PdConfigData) GetValueByTagPath

func (cfg *PdConfigData) GetValueByTagPath(tagPath string) reflect.Value

type Performance

type Performance struct {
	MaxProcs uint `toml:"max-procs" json:"max-procs"`
	// Deprecated: use ServerMemoryQuota instead
	MaxMemory             uint64  `toml:"max-memory" json:"max-memory"`
	ServerMemoryQuota     uint64  `toml:"server-memory-quota" json:"server-memory-quota"`
	MemoryUsageAlarmRatio float64 `toml:"memory-usage-alarm-ratio" json:"memory-usage-alarm-ratio"`
	StatsLease            string  `toml:"stats-lease" json:"stats-lease"`
	StmtCountLimit        uint    `toml:"stmt-count-limit" json:"stmt-count-limit"`
	FeedbackProbability   float64 `toml:"feedback-probability" json:"feedback-probability"`
	QueryFeedbackLimit    uint    `toml:"query-feedback-limit" json:"query-feedback-limit"`
	PseudoEstimateRatio   float64 `toml:"pseudo-estimate-ratio" json:"pseudo-estimate-ratio"`
	ForcePriority         string  `toml:"force-priority" json:"force-priority"`
	BindInfoLease         string  `toml:"bind-info-lease" json:"bind-info-lease"`
	TxnEntrySizeLimit     uint64  `toml:"txn-entry-size-limit" json:"txn-entry-size-limit"`
	TxnTotalSizeLimit     uint64  `toml:"txn-total-size-limit" json:"txn-total-size-limit"`
	TCPKeepAlive          bool    `toml:"tcp-keep-alive" json:"tcp-keep-alive"`
	TCPNoDelay            bool    `toml:"tcp-no-delay" json:"tcp-no-delay"`
	CrossJoin             bool    `toml:"cross-join" json:"cross-join"`
	RunAutoAnalyze        bool    `toml:"run-auto-analyze" json:"run-auto-analyze"`
	DistinctAggPushDown   bool    `toml:"distinct-agg-push-down" json:"distinct-agg-push-down"`
	CommitterConcurrency  int     `toml:"committer-concurrency" json:"committer-concurrency"`
	MaxTxnTTL             uint64  `toml:"max-txn-ttl" json:"max-txn-ttl"`
	MemProfileInterval    string  `toml:"mem-profile-interval" json:"mem-profile-interval"`
	IndexUsageSyncLease   string  `toml:"index-usage-sync-lease" json:"index-usage-sync-lease"`
	PlanReplayerGCLease   string  `toml:"plan-replayer-gc-lease" json:"plan-replayer-gc-lease"`
	GOGC                  int     `toml:"gogc" json:"gogc"`
	EnforceMPP            bool    `toml:"enforce-mpp" json:"enforce-mpp"`
}

Performance is the performance section of the config.

type PrintTemplate

type PrintTemplate interface {
	// TemplateName() string
	CollectResult(*HandleData, interface{}) error
	Print(io.Writer)
	ResultAbnormal() bool
}

type RaftStoreConfig

type RaftStoreConfig struct {
	Prevote                          bool    `toml:"prevote" json:"prevote"`
	RaftdbPath                       string  `toml:"raftdb-path" json:"raftdb-path"`
	Capacity                         string  `toml:"capacity" json:"capacity"`
	RaftBaseTickInterval             string  `toml:"raft-base-tick-interval" json:"raft-base-tick-interval"`
	RaftHeartbeatTicks               int     `toml:"raft-heartbeat-ticks" json:"raft-heartbeat-ticks"`
	RaftElectionTimeoutTicks         int     `toml:"raft-election-timeout-ticks" json:"raft-election-timeout-ticks"`
	RaftMinElectionTimeoutTicks      int     `toml:"raft-min-election-timeout-ticks" json:"raft-min-election-timeout-ticks"`
	RaftMaxElectionTimeoutTicks      int     `toml:"raft-max-election-timeout-ticks" json:"raft-max-election-timeout-ticks"`
	RaftMaxSizePerMsg                string  `toml:"raft-max-size-per-msg" json:"raft-max-size-per-msg"`
	RaftMaxInflightMsgs              int     `toml:"raft-max-inflight-msgs" json:"raft-max-inflight-msgs"`
	RaftEntryMaxSize                 string  `toml:"raft-entry-max-size" json:"raft-entry-max-size"`
	RaftLogGcTickInterval            string  `toml:"raft-log-gc-tick-interval" json:"raft-log-gc-tick-interval"`
	RaftLogGcThreshold               int     `toml:"raft-log-gc-threshold" json:"raft-log-gc-threshold"`
	RaftLogGcCountLimit              int     `toml:"raft-log-gc-count-limit" json:"raft-log-gc-count-limit"`
	RaftLogGcSizeLimit               string  `toml:"raft-log-gc-size-limit" json:"raft-log-gc-size-limit"`
	RaftLogReserveMaxTicks           int     `toml:"raft-log-reserve-max-ticks" json:"raft-log-reserve-max-ticks"`
	RaftEnginePurgeInterval          string  `toml:"raft-engine-purge-interval" json:"raft-engine-purge-interval"`
	RaftEntryCacheLifeTime           string  `toml:"raft-entry-cache-life-time" json:"raft-entry-cache-life-time"`
	RaftRejectTransferLeaderDuration string  `toml:"raft-reject-transfer-leader-duration" json:"raft-reject-transfer-leader-duration"`
	SplitRegionCheckTickInterval     string  `toml:"split-region-check-tick-interval" json:"split-region-check-tick-interval"`
	RegionSplitCheckDiff             string  `toml:"region-split-check-diff" json:"region-split-check-diff"`
	RegionCompactCheckInterval       string  `toml:"region-compact-check-interval" json:"region-compact-check-interval"`
	RegionCompactCheckStep           int     `toml:"region-compact-check-step" json:"region-compact-check-step"`
	RegionCompactMinTombstones       int     `toml:"region-compact-min-tombstones" json:"region-compact-min-tombstones"`
	RegionCompactTombstonesPercent   int     `toml:"region-compact-tombstones-percent" json:"region-compact-tombstones-percent"`
	PdHeartbeatTickInterval          string  `toml:"pd-heartbeat-tick-interval" json:"pd-heartbeat-tick-interval"`
	PdStoreHeartbeatTickInterval     string  `toml:"pd-store-heartbeat-tick-interval" json:"pd-store-heartbeat-tick-interval"`
	SnapMgrGcTickInterval            string  `toml:"snap-mgr-gc-tick-interval" json:"snap-mgr-gc-tick-interval"`
	SnapGcTimeout                    string  `toml:"snap-gc-timeout" json:"snap-gc-timeout"`
	LockCfCompactInterval            string  `toml:"lock-cf-compact-interval" json:"lock-cf-compact-interval"`
	SnapGeneratorPoolSize            int     `toml:"snap-generator-pool-size" json:"snap-generator-pool-size"`
	LockCfCompactBytesThreshold      string  `toml:"lock-cf-compact-bytes-threshold" json:"lock-cf-compact-bytes-threshold"`
	NotifyCapacity                   int     `toml:"notify-capacity" json:"notify-capacity"`
	MessagesPerTick                  int     `toml:"messages-per-tick" json:"messages-per-tick"`
	MaxPeerDownDuration              string  `toml:"max-peer-down-duration" json:"max-peer-down-duration"`
	MaxLeaderMissingDuration         string  `toml:"max-leader-missing-duration" json:"max-leader-missing-duration"`
	AbnormalLeaderMissingDuration    string  `toml:"abnormal-leader-missing-duration" json:"abnormal-leader-missing-duration"`
	PeerStaleStateCheckInterval      string  `toml:"peer-stale-state-check-interval" json:"peer-stale-state-check-interval"`
	LeaderTransferMaxLogLag          int     `toml:"leader-transfer-max-log-lag" json:"leader-transfer-max-log-lag"`
	SnapApplyBatchSize               string  `toml:"snap-apply-batch-size" json:"snap-apply-batch-size"`
	ConsistencyCheckInterval         string  `toml:"consistency-check-interval" json:"consistency-check-interval"`
	ReportRegionFlowInterval         string  `toml:"report-region-flow-interval" json:"report-region-flow-interval"`
	RaftStoreMaxLeaderLease          string  `toml:"raft-store-max-leader-lease" json:"raft-store-max-leader-lease"`
	RightDeriveWhenSplit             bool    `toml:"right-derive-when-split" json:"right-derive-when-split"`
	AllowRemoveLeader                bool    `toml:"allow-remove-leader" json:"allow-remove-leader"`
	MergeMaxLogGap                   int     `toml:"merge-max-log-gap" json:"merge-max-log-gap"`
	MergeCheckTickInterval           string  `toml:"merge-check-tick-interval" json:"merge-check-tick-interval"`
	UseDeleteRange                   bool    `toml:"use-delete-range" json:"use-delete-range"`
	CleanupImportSstInterval         string  `toml:"cleanup-import-sst-interval" json:"cleanup-import-sst-interval"`
	LocalReadBatchSize               int     `toml:"local-read-batch-size" json:"local-read-batch-size"`
	ApplyMaxBatchSize                int     `toml:"apply-max-batch-size" json:"apply-max-batch-size"`
	ApplyPoolSize                    int     `toml:"apply-pool-size" json:"apply-pool-size"`
	ApplyRescheduleDuration          string  `toml:"apply-reschedule-duration" json:"apply-reschedule-duration"`
	ApplyLowPriorityPoolSize         int     `toml:"apply-low-priority-pool-size" json:"apply-low-priority-pool-size"`
	StoreMaxBatchSize                int     `toml:"store-max-batch-size" json:"store-max-batch-size"`
	StorePoolSize                    int     `toml:"store-pool-size" json:"store-pool-size"`
	StoreRescheduleDuration          string  `toml:"store-reschedule-duration" json:"store-reschedule-duration"`
	StoreLowPriorityPoolSize         int     `toml:"store-low-priority-pool-size" json:"store-low-priority-pool-size"`
	StoreIoPoolSize                  int     `toml:"store-io-pool-size" json:"store-io-pool-size"`
	StoreIoNotifyCapacity            int     `toml:"store-io-notify-capacity" json:"store-io-notify-capacity"`
	FuturePollSize                   int     `toml:"future-poll-size" json:"future-poll-size"`
	HibernateRegions                 bool    `toml:"hibernate-regions" json:"hibernate-regions"`
	DevAssert                        bool    `toml:"dev-assert" json:"dev-assert"`
	ApplyYieldDuration               string  `toml:"apply-yield-duration" json:"apply-yield-duration"`
	PerfLevel                        int     `toml:"perf-level" json:"perf-level"`
	EvictCacheOnMemoryRatio          float64 `toml:"evict-cache-on-memory-ratio" json:"evict-cache-on-memory-ratio"`
	CmdBatch                         bool    `toml:"cmd-batch" json:"cmd-batch"`
	RaftWriteSizeLimit               string  `toml:"raft-write-size-limit" json:"raft-write-size-limit"`
	WaterfallMetrics                 bool    `toml:"waterfall-metrics" json:"waterfall-metrics"`
	IoRescheduleConcurrentMaxCount   int     `toml:"io-reschedule-concurrent-max-count" json:"io-reschedule-concurrent-max-count"`
	IoRescheduleHotpotDuration       string  `toml:"io-reschedule-hotpot-duration" json:"io-reschedule-hotpot-duration"`
	InspectInterval                  string  `toml:"inspect-interval" json:"inspect-interval"`
}

type ReadPoolConfig

type ReadPoolConfig struct {
	Unified struct {
		MinThreadCount    int    `toml:"min-thread-count" json:"min-thread-count"`
		MaxThreadCount    int    `toml:"max-thread-count" json:"max-thread-count"`
		StackSize         string `toml:"stack-size" json:"stack-size"`
		MaxTasksPerWorker int    `toml:"max-tasks-per-worker" json:"max-tasks-per-worker"`
	} `toml:"unified" json:"unified"`
	Storage struct {
		HighConcurrency         int    `toml:"high-concurrency" json:"high-concurrency"`
		NormalConcurrency       int    `toml:"normal-concurrency" json:"normal-concurrency"`
		LowConcurrency          int    `toml:"low-concurrency" json:"low-concurrency"`
		MaxTasksPerWorkerHigh   int    `toml:"max-tasks-per-worker-high" json:"max-tasks-per-worker-high"`
		MaxTasksPerWorkerNormal int    `toml:"max-tasks-per-worker-normal" json:"max-tasks-per-worker-normal"`
		MaxTasksPerWorkerLow    int    `toml:"max-tasks-per-worker-low" json:"max-tasks-per-worker-low"`
		StackSize               string `toml:"stack-size" json:"stack-size"`
		UseUnifiedPool          bool   `toml:"use-unified-pool"  json:"use-unified-pool"`
	} `toml:"storage" json:"storage"`
	Coprocessor struct {
		HighConcurrency         int    `toml:"high-concurrency" json:"high-concurrency"`
		NormalConcurrency       int    `toml:"normal-concurrency" json:"normal-concurrency"`
		LowConcurrency          int    `toml:"low-concurrency" json:"low-concurrency"`
		MaxTasksPerWorkerHigh   int    `toml:"max-tasks-per-worker-high" json:"max-tasks-per-worker-high"`
		MaxTasksPerWorkerNormal int    `toml:"max-tasks-per-worker-normal" json:"max-tasks-per-worker-normal"`
		MaxTasksPerWorkerLow    int    `toml:"max-tasks-per-worker-low" json:"max-tasks-per-worker-low"`
		StackSize               string `toml:"stack-size" json:"stack-size"`
		UseUnifiedPool          bool   `toml:"use-unified-pool"  json:"use-unified-pool"`
	} `toml:"coprocessor" json:"coprocessor"`
}

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"`

	// 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.

type Rule

type Rule struct {
	// version
	ID           int64  `yaml:"id" toml:"id"`
	Name         string `yaml:"name" toml:"name"`
	Description  string `yaml:"description" toml:"description"`
	ExecuteRule  string `yaml:"execute_rule" toml:"execute_rule"`
	NameStruct   string `yaml:"name_struct" toml:"name_struct"` // datatype.component
	CheckType    string `yaml:"check_type" toml:"check_type"`
	ExpectRes    string `yaml:"expect_res" toml:"expect_res"`
	WarnLevel    string `yaml:"warn_level" toml:"warn_level"`
	Variation    string `yaml:"variation" toml:"variation"` // e.g. tidb.file.max_days,
	AlertingRule string `yaml:"alerting_rule" toml:"alerting_rule"`
	Suggestion   string `yaml:"suggestion" toml:"suggestion"`
}

ruletag: checkType, datatype, component

type RuleResult

type RuleResult struct {
	RuleName     string
	RuleID       int64
	Variation    string
	AlertingRule string
	InfoList     PrintTemplate // todo init
	Suggestion   string
}

type RuleSet

type RuleSet map[string]*Rule //  TODO e.g {"Config": {"TidbConfigData": {&Rule{}, &Rule{}}}, "Dashboard": {}}

func (RuleSet) GetNameStructs

func (rs RuleSet) GetNameStructs() map[string]struct{}

type SQLPerformanceInfo

type SQLPerformanceInfo struct {
	NumDigest string `header:"NumDigest"`
	Info      string `header:"Info"`
}

type SQLPerformancePrintTemplate

type SQLPerformancePrintTemplate struct {
	Rule              *Rule
	InfoList          *SQLPerformanceInfo
	AbnormalDigestCnt int
}

func NewSQLPerformancePrintTemplate

func NewSQLPerformancePrintTemplate(rule *Rule) *SQLPerformancePrintTemplate

func (*SQLPerformancePrintTemplate) CollectResult

func (c *SQLPerformancePrintTemplate) CollectResult(hd *HandleData, retValue interface{}) error

func (*SQLPerformancePrintTemplate) Print

func (c *SQLPerformancePrintTemplate) Print(out io.Writer)

func (*SQLPerformancePrintTemplate) ResultAbnormal

func (c *SQLPerformancePrintTemplate) ResultAbnormal() bool

type Sample

type Sample struct {
	SampleID      string
	SampleContent []string // e.g. {"Pd", "TiDB"....}
}

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 string `toml:"split-merge-interval" json:"split-merge-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 string `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 string `toml:"max-store-down-time" json:"max-store-down-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"`

	// 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"`
}

ScheduleConfig is the schedule configuration.

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 Security

type Security struct {
	SkipGrantTable         bool     `toml:"skip-grant-table" json:"skip-grant-table"`
	SSLCA                  string   `toml:"ssl-ca" json:"ssl-ca"`
	SSLCert                string   `toml:"ssl-cert" json:"ssl-cert"`
	SSLKey                 string   `toml:"ssl-key" json:"ssl-key"`
	RequireSecureTransport bool     `toml:"require-secure-transport" json:"require-secure-transport"`
	ClusterSSLCA           string   `toml:"cluster-ssl-ca" json:"cluster-ssl-ca"`
	ClusterSSLCert         string   `toml:"cluster-ssl-cert" json:"cluster-ssl-cert"`
	ClusterSSLKey          string   `toml:"cluster-ssl-key" json:"cluster-ssl-key"`
	ClusterVerifyCN        []string `toml:"cluster-verify-cn" json:"cluster-verify-cn"`
	// If set to "plaintext", the spilled files will not be encrypted.
	SpilledFileEncryptionMethod string `toml:"spilled-file-encryption-method" json:"spilled-file-encryption-method"`
	// EnableSEM prevents SUPER users from having full access.
	EnableSEM bool `toml:"enable-sem" json:"enable-sem"`
	// Allow automatic TLS certificate generation
	AutoTLS         bool   `toml:"auto-tls" json:"auto-tls"`
	MinTLSVersion   string `toml:"tls-version" json:"tls-version"`
	RSAKeySize      int    `toml:"rsa-key-size" json:"rsa-key-size"`
	SecureBootstrap bool   `toml:"secure-bootstrap" json:"secure-bootstrap"`
}

Security is the security section of the config.

type ServerConfig

type ServerConfig struct {
	Addr                        string `toml:"addr" json:"addr"`
	AdvertiseAddr               string `toml:"advertise-addr" json:"advertise-addr"`
	StatusAddr                  string `toml:"status-addr" json:"status-addr"`
	AdvertiseStatusAddr         string `toml:"advertise-status-addr" json:"advertise-status-addr"`
	StatusThreadPoolSize        int    `toml:"status-thread-pool-size" json:"status-thread-pool-size"`
	MaxGrpcSendMsgLen           int    `toml:"max-grpc-send-msg-len" json:"max-grpc-send-msg-len"`
	RaftClientGrpcSendMsgBuffer int    `toml:"raft-client-grpc-send-msg-buffer" json:"raft-client-grpc-send-msg-buffer"`
	RaftClientQueueSize         int    `toml:"raft-client-queue-size" json:"raft-client-queue-size"`
	RaftMsgMaxBatchSize         int    `toml:"raft-msg-max-batch-size" json:"raft-msg-max-batch-size"`
	GrpcCompressionType         string `toml:"grpc-compression-type" json:"grpc-compression-type"`
	GrpcConcurrency             int    `toml:"grpc-concurrency" json:"grpc-concurrency"`
	GrpcConcurrentStream        int    `toml:"grpc-concurrent-stream" json:"grpc-concurrent-stream"`
	GrpcRaftConnNum             int    `toml:"grpc-raft-conn-num" json:"grpc-raft-conn-num"`
	// GrpcMemoryPoolQuota              uint64   `toml:"grpc-memory-pool-quota" json:"grpc-memory-pool-quota"`
	GrpcStreamInitialWindowSize      string   `toml:"grpc-stream-initial-window-size" json:"grpc-stream-initial-window-size"`
	GrpcKeepaliveTime                string   `toml:"grpc-keepalive-time" json:"grpc-keepalive-time"`
	GrpcKeepaliveTimeout             string   `toml:"grpc-keepalive-timeout" json:"grpc-keepalive-timeout"`
	ConcurrentSendSnapLimit          int      `toml:"concurrent-send-snap-limit" json:"concurrent-send-snap-limit"`
	ConcurrentRecvSnapLimit          int      `toml:"concurrent-recv-snap-limit" json:"concurrent-recv-snap-limit"`
	EndPointRecursionLimit           int      `toml:"end-point-recursion-limit" json:"end-point-recursion-limit"`
	EndPointStreamChannelSize        int      `toml:"end-point-stream-channel-size" json:"end-point-stream-channel-size"`
	EndPointBatchRowLimit            int      `toml:"end-point-batch-row-limit" json:"end-point-batch-row-limit"`
	EndPointStreamBatchRowLimit      int      `toml:"end-point-stream-batch-row-limit" json:"end-point-stream-batch-row-limit"`
	EndPointEnableBatchIfPossible    bool     `toml:"end-point-enable-batch-if-possible" json:"end-point-enable-batch-if-possible"`
	EndPointRequestMaxHandleDuration string   `toml:"end-point-request-max-handle-duration" json:"end-point-request-max-handle-duration"`
	EndPointMaxConcurrency           int      `toml:"end-point-max-concurrency" json:"end-point-max-concurrency"`
	SnapMaxWriteBytesPerSec          string   `toml:"snap-max-write-bytes-per-sec" json:"snap-max-write-bytes-per-sec"`
	SnapMaxTotalSize                 string   `toml:"snap-max-total-size" json:"snap-max-total-size"`
	StatsConcurrency                 int      `toml:"stats-concurrency" json:"stats-concurrency"`
	HeavyLoadThreshold               int      `toml:"heavy-load-threshold" json:"heavy-load-threshold"`
	HeavyLoadWaitDuration            string   `toml:"heavy-load-wait-duration" json:"heavy-load-wait-duration"`
	EnableRequestBatch               bool     `toml:"enable-request-batch" json:"enable-request-batch"`
	BackgroundThreadCount            int      `toml:"background-thread-count" json:"background-thread-count"`
	EndPointSlowLogThreshold         string   `toml:"end-point-slow-log-threshold" json:"end-point-slow-log-threshold"`
	ForwardMaxConnectionsPerAddress  int      `toml:"forward-max-connections-per-address" json:"forward-max-connections-per-address"`
	RejectMessagesOnMemoryRatio      float64  `toml:"reject-messages-on-memory-ratio" json:"reject-messages-on-memory-ratio"`
	Labels                           struct{} `toml:"labels" json:"labels"`
}

type SourceDataV2

type SourceDataV2 struct {
	ClusterInfo   *collector.ClusterJSON
	TidbVersion   string
	NodesData     map[ComponentName][]Config // {"component": {config, config, config, nil}}
	DashboardData *DashboardData
}

func (*SourceDataV2) AppendConfig

func (sd *SourceDataV2) AppendConfig(cfg Config, component ComponentName)

type Status

type Status struct {
	StatusHost      string `toml:"status-host" json:"status-host"`
	MetricsAddr     string `toml:"metrics-addr" json:"metrics-addr"`
	StatusPort      uint   `toml:"status-port" json:"status-port"`
	MetricsInterval uint   `toml:"metrics-interval" json:"metrics-interval"`
	ReportStatus    bool   `toml:"report-status" json:"report-status"`
	RecordQPSbyDB   bool   `toml:"record-db-qps" json:"record-db-qps"`
}

Status is the status section of the config.

type StmtSummary

type StmtSummary struct {
	// Enable statement summary or not.
	Enable bool `toml:"enable" json:"enable"`
	// Enable summary internal query.
	EnableInternalQuery bool `toml:"enable-internal-query" json:"enable-internal-query"`
	// The maximum number of statements kept in memory.
	MaxStmtCount uint `toml:"max-stmt-count" json:"max-stmt-count"`
	// The maximum length of displayed normalized SQL and sample SQL.
	MaxSQLLength uint `toml:"max-sql-length" json:"max-sql-length"`
	// The refresh interval of statement summary.
	RefreshInterval int `toml:"refresh-interval" json:"refresh-interval"`
	// The maximum history size of statement summary.
	HistorySize int `toml:"history-size" json:"history-size"`
}

StmtSummary is the config for statement summary.

type StorageConfig

type StorageConfig struct {
	DataDir                        string  `toml:"data-dir" json:"data-dir"`
	GcRatioThreshold               float64 `toml:"gc-ratio-threshold" json:"gc-ratio-threshold"`
	MaxKeySize                     int     `toml:"max-key-size" json:"max-key-size"`
	SchedulerConcurrency           int     `toml:"scheduler-concurrency" json:"scheduler-concurrency"`
	SchedulerWorkerPoolSize        int     `toml:"scheduler-worker-pool-size" json:"scheduler-worker-pool-size"`
	SchedulerPendingWriteThreshold string  `toml:"scheduler-pending-write-threshold" json:"scheduler-pending-write-threshold"`
	ReserveSpace                   string  `toml:"reserve-space" json:"reserve-space"`
	EnableAsyncApplyPrewrite       bool    `toml:"enable-async-apply-prewrite" json:"enable-async-apply-prewrite"`
	EnableTTL                      bool    `toml:"enable-ttl" json:"enable-ttl"`
	TTLCheckPollInterval           string  `toml:"ttl-check-poll-interval" json:"ttl-check-poll-interval"`
	FlowControl                    struct {
		Enable                          bool   `toml:"enable" json:"enable"`
		SoftPendingCompactionBytesLimit string `toml:"soft-pending-compaction-bytes-limit" json:"soft-pending-compaction-bytes-limit"`
		HardPendingCompactionBytesLimit string `toml:"hard-pending-compaction-bytes-limit" json:"hard-pending-compaction-bytes-limit"`
		MemtablesThreshold              int    `toml:"memtables-threshold" json:"memtables-threshold"`
		L0FilesThreshold                int    `toml:"l0-files-threshold" json:"l0-files-threshold"`
	} `toml:"flow-control" json:"flow-control"`
	BlockCache struct {
		Shared              bool    `toml:"shared" json:"shared"`
		Capacity            string  `toml:"capacity" json:"capacity"`
		NumShardBits        int     `toml:"num-shard-bits" json:"num-shard-bits"`
		StrictCapacityLimit bool    `toml:"strict-capacity-limit" json:"strict-capacity-limit"`
		HighPriPoolRatio    float64 `toml:"high-pri-pool-ratio" json:"high-pri-pool-ratio"`
		MemoryAllocator     string  `toml:"memory-allocator" json:"memory-allocator"`
	} `toml:"block-cache" json:"block-cache"`
	IoRateLimit struct {
		MaxBytesPerSec              string `toml:"max-bytes-per-sec" json:"max-bytes-per-sec"`
		Mode                        string `toml:"mode" json:"mode"`
		Strict                      bool   `toml:"strict" json:"strict"`
		ForegroundReadPriority      string `toml:"foreground-read-priority" json:"foreground-read-priority"`
		ForegroundWritePriority     string `toml:"foreground-write-priority" json:"foreground-write-priority"`
		FlushPriority               string `toml:"flush-priority" json:"flush-priority"`
		LevelZeroCompactionPriority string `toml:"level-zero-compaction-priority" json:"level-zero-compaction-priority"`
		CompactionPriority          string `toml:"compaction-priority" json:"compaction-priority"`
		ReplicationPriority         string `toml:"replication-priority" json:"replication-priority"`
		LoadBalancePriority         string `toml:"load-balance-priority" json:"load-balance-priority"`
		GcPriority                  string `toml:"gc-priority" json:"gc-priority"`
		ImportPriority              string `toml:"import-priority" json:"import-priority"`
		ExportPriority              string `toml:"export-priority" json:"export-priority"`
		OtherPriority               string `toml:"other-priority" json:"other-priority"`
	} `toml:"io-rate-limit" json:"io-rate-limit"`
}

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 TiKVClient

type TiKVClient struct {
	// GrpcConnectionCount is the max gRPC connections that will be established
	// with each tikv-server.
	GrpcConnectionCount uint `toml:"grpc-connection-count" json:"grpc-connection-count"`
	// After a duration of this time in seconds if the client doesn't see any activity it pings
	// the server to see if the transport is still alive.
	GrpcKeepAliveTime uint `toml:"grpc-keepalive-time" json:"grpc-keepalive-time"`
	// After having pinged for keepalive check, the client waits for a duration of Timeout in seconds
	// and if no activity is seen even after that the connection is closed.
	GrpcKeepAliveTimeout uint `toml:"grpc-keepalive-timeout" json:"grpc-keepalive-timeout"`
	// GrpcCompressionType is the compression type for gRPC channel: none or gzip.
	GrpcCompressionType string `toml:"grpc-compression-type" json:"grpc-compression-type"`
	// CommitTimeout is the max time which command 'commit' will wait.
	CommitTimeout string      `toml:"commit-timeout" json:"commit-timeout"`
	AsyncCommit   AsyncCommit `toml:"async-commit" json:"async-commit"`
	// MaxBatchSize is the max batch size when calling batch commands API.
	MaxBatchSize uint `toml:"max-batch-size" json:"max-batch-size"`
	// If TiKV load is greater than this, TiDB will wait for a while to avoid little batch.
	OverloadThreshold uint `toml:"overload-threshold" json:"overload-threshold"`
	// MaxBatchWaitTime in nanosecond is the max wait time for batch.
	MaxBatchWaitTime time.Duration `toml:"max-batch-wait-time" json:"max-batch-wait-time"`
	// BatchWaitSize is the max wait size for batch.
	BatchWaitSize uint `toml:"batch-wait-size" json:"batch-wait-size"`
	// EnableChunkRPC indicate the data encode in chunk format for coprocessor requests.
	EnableChunkRPC bool `toml:"enable-chunk-rpc" json:"enable-chunk-rpc"`
	// If a Region has not been accessed for more than the given duration (in seconds), it
	// will be reloaded from the PD.
	RegionCacheTTL uint `toml:"region-cache-ttl" json:"region-cache-ttl"`
	// If a store has been up to the limit, it will return error for successive request to
	// prevent the store occupying too much token in dispatching level.
	StoreLimit int64 `toml:"store-limit" json:"store-limit"`
	// StoreLivenessTimeout is the timeout for store liveness check request.
	StoreLivenessTimeout string           `toml:"store-liveness-timeout" json:"store-liveness-timeout"`
	CoprCache            CoprocessorCache `toml:"copr-cache" json:"copr-cache"`
	// TTLRefreshedTxnSize controls whether a transaction should update its TTL or not.
	TTLRefreshedTxnSize      int64  `toml:"ttl-refreshed-txn-size" json:"ttl-refreshed-txn-size"`
	ResolveLockLiteThreshold uint64 `toml:"resolve-lock-lite-threshold" json:"resolve-lock-lite-threshold"`
}

TiKVClient is the config for tikv client.

type TidbConfig

type TidbConfig struct {
	Host                        string      `toml:"host" json:"host"`
	AdvertiseAddress            string      `toml:"advertise-address" json:"advertise-address"`
	Port                        uint        `toml:"port" json:"port"`
	Cors                        string      `toml:"cors" json:"cors"`
	Store                       string      `toml:"store" json:"store"`
	Path                        string      `toml:"path" json:"path"`
	Socket                      string      `toml:"socket" json:"socket"`
	Lease                       string      `toml:"lease" json:"lease"`
	RunDDL                      bool        `toml:"run-ddl" json:"run-ddl"`
	SplitTable                  bool        `toml:"split-table" json:"split-table"`
	TokenLimit                  uint        `toml:"token-limit" json:"token-limit"`
	OOMUseTmpStorage            bool        `toml:"oom-use-tmp-storage" json:"oom-use-tmp-storage"`
	TempStoragePath             string      `toml:"tmp-storage-path" json:"tmp-storage-path"`
	OOMAction                   string      `toml:"oom-action" json:"oom-action"`
	MemQuotaQuery               int64       `toml:"mem-quota-query" json:"mem-quota-query"`
	NestedLoopJoinCacheCapacity int64       `toml:"nested-loop-join-cache-capacity" json:"nested-loop-join-cache-capacity"`
	TempStorageQuota            int64       `toml:"tmp-storage-quota" json:"tmp-storage-quota"` // Bytes
	EnableStreaming             bool        `toml:"enable-streaming" json:"enable-streaming"`
	EnableBatchDML              bool        `toml:"enable-batch-dml" json:"enable-batch-dml"`
	LowerCaseTableNames         int         `toml:"lower-case-table-names" json:"lower-case-table-names"`
	ServerVersion               string      `toml:"server-version" json:"server-version"`
	Log                         Log         `toml:"log" json:"log"`
	Security                    Security    `toml:"security" json:"security"`
	Status                      Status      `toml:"status" json:"status"`
	Performance                 Performance `toml:"performance" json:"performance"`
	PreparedPlanCache           struct {
		Enabled          bool    `toml:"enabled" json:"enabled"`
		Capacity         int     `toml:"capacity" json:"capacity"`
		MemoryGuardRatio float64 `toml:"memory-guard-ratio" json:"memory-guard-ratio"`
	} `toml:"prepared-plan-cache" json:"prepared-plan-cache"`
	Opentracing   OpenTracing `toml:"opentracing" json:"opentracing"`
	ProxyProtocol struct {
		Networks      string `toml:"networks" json:"networks"`
		HeaderTimeout int    `toml:"header-timeout" json:"header-timeout"`
	} `toml:"proxy-protocol" json:"proxy-protocol"`
	PdClient struct {
		PdServerTimeout int `toml:"pd-server-timeout" json:"pd-server-timeout"`
	} `toml:"pd-client" json:"pd-client"`
	TikvClient          TiKVClient `toml:"tikv-client" json:"tikv-client"`
	Binlog              Binlog     `toml:"binlog" json:"binlog"`
	CompatibleKillQuery bool       `json:"compatible-kill-query"`
	Plugin              struct {
		Dir  string `toml:"dir" json:"dir"`
		Load string `toml:"load" json:"load"`
	} `toml:"plugin" json:"plugin"`
	PessimisticTxn struct {
		// The max count of retry for a single statement in a pessimistic transaction.
		MaxRetryCount uint `toml:"max-retry-count" json:"max-retry-count"`
		// The max count of deadlock events that will be recorded in the information_schema.deadlocks table.
		DeadlockHistoryCapacity uint `toml:"deadlock-history-capacity" json:"deadlock-history-capacity"`
		// Whether retryable deadlocks (in-statement deadlocks) are collected to the information_schema.deadlocks table.
		DeadlockHistoryCollectRetryable bool `toml:"deadlock-history-collect-retryable" json:"deadlock-history-collect-retryable"`
	} `toml:"pessimistic-txn" json:"pessimistic-txn"`
	CheckMb4ValueInUtf8          bool        `toml:"check-mb4-value-in-utf8" json:"check-mb4-value-in-utf8"`
	MaxIndexLength               int         `toml:"max-index-length" json:"max-index-length"`
	IndexLimit                   int         `toml:"index-limit" json:"index-limit"`
	TableColumnCountLimit        int         `toml:"table-column-count-limit" json:"table-column-count-limit"`
	GracefulWaitBeforeShutdown   int         `toml:"graceful-wait-before-shutdown" json:"graceful-wait-before-shutdown"`
	AlterPrimaryKey              bool        `toml:"alter-primary-key" json:"alter-primary-key"`
	TreatOldVersionUtf8AsUtf8Mb4 bool        `json:"treat-old-version-utf8-as-utf8mb4"`
	EnableTableLock              bool        `toml:"enable-table-lock" json:"enable-table-lock"`
	DelayCleanTableLock          int         `toml:"delay-clean-table-lock" json:"delay-clean-table-lock"`
	SplitRegionMaxNum            int         `toml:"split-region-max-num" json:"split-region-max-num"`
	StmtSummary                  StmtSummary `toml:"stmt-summary" json:"stmt-summary"`
	RepairMode                   bool        `toml:"repair-mode" json:"repair-mode"`
	RepairTableList              []string    `toml:"repair-table-list" json:"repair-table-list"`
	IsolationRead                struct {
		Engines []string `toml:"engines" json:"engines"`
	} `toml:"isolation-read" json:"isolation-read"`
	MaxServerConnections                 int  `toml:"max-server-connections" json:"max-server-connections"`
	NewCollationsEnabledOnFirstBootstrap bool `toml:"new_collations_enabled_on_first_bootstrap" json:"new_collations_enabled_on_first_bootstrap"`
	Experimental                         struct {
		AllowExpressionIndex bool `toml:"allow-expression-index" json:"allow-expression-index"`
	} `toml:"experimental" json:"experimental"`
	EnableCollectExecutionInfo bool `toml:"enable-collect-execution-info" json:"enable-collect-execution-info"`
	SkipRegisterToDashboard    bool `toml:"skip-register-to-dashboard" json:"skip-register-to-dashboard"`
	EnableTelemetry            bool `toml:"enable-telemetry" json:"enable-telemetry"`
	Labels                     struct {
	} `toml:"labels" json:"labels"`
	EnableGlobalIndex             bool `toml:"enable-global-index" json:"enable-global-index"`
	DeprecateIntegerDisplayLength bool `toml:"deprecate-integer-display-length" json:"deprecate-integer-display-length"`
	EnableEnumLengthLimit         bool `toml:"enable-enum-length-limit" json:"enable-enum-length-limit"`
	StoresRefreshInterval         int  `toml:"stores-refresh-interval" json:"stores-refresh-interval"`
	EnableTCP4Only                bool `toml:"enable-tcp4-only" json:"enable-tcp4-only"`
	EnableForwarding              bool `toml:"enable-forwarding" json:"enable-forwarding"`
}

type TidbConfigData

type TidbConfigData struct {
	*TidbConfig     // embedded field
	Port        int // TODO move to meta
	Host        string
}

func NewTidbConfigData

func NewTidbConfigData() *TidbConfigData

func (*TidbConfigData) ActingName

func (cfg *TidbConfigData) ActingName() string

func (*TidbConfigData) CheckNil

func (cfg *TidbConfigData) CheckNil() bool

func (*TidbConfigData) GetComponent

func (cfg *TidbConfigData) GetComponent() string

func (*TidbConfigData) GetHost

func (cfg *TidbConfigData) GetHost() string

func (*TidbConfigData) GetPort

func (cfg *TidbConfigData) GetPort() int

func (*TidbConfigData) GetValueByTagPath

func (cfg *TidbConfigData) GetValueByTagPath(tagPath string) reflect.Value

type TiflashConfig

type TiflashConfig struct {
	LogLevel             string  `toml:"log-level" json:"log-level"`
	LogFile              string  `toml:"log-file" json:"log-file"`
	LogFormat            string  `toml:"log-format" json:"log-format"`
	SlowLogFile          string  `toml:"slow-log-file" json:"slow-log-file"`
	SlowLogThreshold     string  `toml:"slow-log-threshold" json:"slow-log-threshold"`
	LogRotationTimespan  string  `toml:"log-rotation-timespan" json:"log-rotation-timespan"`
	LogRotationSize      string  `toml:"log-rotation-size" json:"log-rotation-size"`
	EnableIoSnoop        bool    `toml:"enable-io-snoop" json:"enable-io-snoop"`
	AbortOnPanic         bool    `toml:"abort-on-panic" json:"abort-on-panic"`
	MemoryUsageLimit     string  `toml:"memory-usage-limit" json:"memory-usage-limit"`
	MemoryUsageHighWater float64 `toml:"memory-usage-high-water" json:"memory-usage-high-water"`
	Readpool             struct {
		Unified struct {
			MinThreadCount    int    `toml:"min-thread-count" json:"min-thread-count"`
			MaxThreadCount    int    `toml:"max-thread-count" json:"max-thread-count"`
			StackSize         string `toml:"stack-size" json:"stack-size"`
			MaxTasksPerWorker int    `toml:"max-tasks-per-worker" json:"max-tasks-per-worker"`
		} `toml:"unified" json:"unified"`
		Storage struct {
			UseUnifiedPool          bool   `toml:"use-unified-pool" json:"use-unified-pool"`
			HighConcurrency         int    `toml:"high-concurrency" json:"high-concurrency"`
			NormalConcurrency       int    `toml:"normal-concurrency" json:"normal-concurrency"`
			LowConcurrency          int    `toml:"low-concurrency" json:"low-concurrency"`
			MaxTasksPerWorkerHigh   int    `toml:"max-tasks-per-worker-high" json:"max-tasks-per-worker-high"`
			MaxTasksPerWorkerNormal int    `toml:"max-tasks-per-worker-normal" json:"max-tasks-per-worker-normal"`
			MaxTasksPerWorkerLow    int    `toml:"max-tasks-per-worker-low" json:"max-tasks-per-worker-low"`
			StackSize               string `toml:"stack-size" json:"stack-size"`
		} `toml:"storage" json:"storage"`
		Coprocessor struct {
			UseUnifiedPool          bool   `toml:"use-unified-pool" json:"use-unified-pool"`
			HighConcurrency         int    `toml:"high-concurrency" json:"high-concurrency"`
			NormalConcurrency       int    `toml:"normal-concurrency" json:"normal-concurrency"`
			LowConcurrency          int    `toml:"low-concurrency" json:"low-concurrency"`
			MaxTasksPerWorkerHigh   int    `toml:"max-tasks-per-worker-high" json:"max-tasks-per-worker-high"`
			MaxTasksPerWorkerNormal int    `toml:"max-tasks-per-worker-normal" json:"max-tasks-per-worker-normal"`
			MaxTasksPerWorkerLow    int    `toml:"max-tasks-per-worker-low" json:"max-tasks-per-worker-low"`
			StackSize               string `toml:"stack-size" json:"stack-size"`
		} `toml:"coprocessor" json:"coprocessor"`
	} `toml:"readpool" json:"readpool"`
	Server struct {
		Addr                        string `toml:"addr" json:"addr"`
		AdvertiseAddr               string `toml:"advertise-addr" json:"advertise-addr"`
		EngineAddr                  string `toml:"engine-addr" json:"engine-addr"`
		EngineStoreVersion          string `toml:"engine-store-version" json:"engine-store-version"`
		EngineStoreGitHash          string `toml:"engine-store-git-hash" json:"engine-store-git-hash"`
		StatusAddr                  string `toml:"status-addr" json:"status-addr"`
		AdvertiseStatusAddr         string `toml:"advertise-status-addr" json:"advertise-status-addr"`
		StatusThreadPoolSize        int    `toml:"status-thread-pool-size" json:"status-thread-pool-size"`
		MaxGrpcSendMsgLen           int    `toml:"max-grpc-send-msg-len" json:"max-grpc-send-msg-len"`
		RaftClientGrpcSendMsgBuffer int    `toml:"raft-client-grpc-send-msg-buffer" json:"raft-client-grpc-send-msg-buffer"`
		RaftClientQueueSize         int    `toml:"raft-client-queue-size" json:"raft-client-queue-size"`
		RaftMsgMaxBatchSize         int    `toml:"raft-msg-max-batch-size" json:"raft-msg-max-batch-size"`
		GrpcCompressionType         string `toml:"grpc-compression-type" json:"grpc-compression-type"`
		GrpcConcurrency             int    `toml:"grpc-concurrency" json:"grpc-concurrency"`
		GrpcConcurrentStream        int    `toml:"grpc-concurrent-stream" json:"grpc-concurrent-stream"`
		GrpcRaftConnNum             int    `toml:"grpc-raft-conn-num" json:"grpc-raft-conn-num"`
		// GrpcMemoryPoolQuota              int64  `toml:"grpc-memory-pool-quota" json:"grpc-memory-pool-quota"`
		GrpcStreamInitialWindowSize      string `toml:"grpc-stream-initial-window-size" json:"grpc-stream-initial-window-size"`
		GrpcKeepaliveTime                string `toml:"grpc-keepalive-time" json:"grpc-keepalive-time"`
		GrpcKeepaliveTimeout             string `toml:"grpc-keepalive-timeout" json:"grpc-keepalive-timeout"`
		ConcurrentSendSnapLimit          int    `toml:"concurrent-send-snap-limit" json:"concurrent-send-snap-limit"`
		ConcurrentRecvSnapLimit          int    `toml:"concurrent-recv-snap-limit" json:"concurrent-recv-snap-limit"`
		EndPointRecursionLimit           int    `toml:"end-point-recursion-limit" json:"end-point-recursion-limit"`
		EndPointStreamChannelSize        int    `toml:"end-point-stream-channel-size" json:"end-point-stream-channel-size"`
		EndPointBatchRowLimit            int    `toml:"end-point-batch-row-limit" json:"end-point-batch-row-limit"`
		EndPointStreamBatchRowLimit      int    `toml:"end-point-stream-batch-row-limit" json:"end-point-stream-batch-row-limit"`
		EndPointEnableBatchIfPossible    bool   `toml:"end-point-enable-batch-if-possible" json:"end-point-enable-batch-if-possible"`
		EndPointRequestMaxHandleDuration string `toml:"end-point-request-max-handle-duration" json:"end-point-request-max-handle-duration"`
		EndPointMaxConcurrency           int    `toml:"end-point-max-concurrency" json:"end-point-max-concurrency"`
		SnapMaxWriteBytesPerSec          string `toml:"snap-max-write-bytes-per-sec" json:"snap-max-write-bytes-per-sec"`
		SnapMaxTotalSize                 string `toml:"snap-max-total-size" json:"snap-max-total-size"`
		StatsConcurrency                 int    `toml:"stats-concurrency" json:"stats-concurrency"`
		HeavyLoadThreshold               int    `toml:"heavy-load-threshold" json:"heavy-load-threshold"`
		HeavyLoadWaitDuration            string `toml:"heavy-load-wait-duration" json:"heavy-load-wait-duration"`
		EnableRequestBatch               bool   `toml:"enable-request-batch" json:"enable-request-batch"`
		BackgroundThreadCount            int    `toml:"background-thread-count" json:"background-thread-count"`
		EndPointSlowLogThreshold         string `toml:"end-point-slow-log-threshold" json:"end-point-slow-log-threshold"`
		ForwardMaxConnectionsPerAddress  int    `toml:"forward-max-connections-per-address" json:"forward-max-connections-per-address"`
		Labels                           struct {
			Host   string `toml:"host" json:"host"`
			Zone   string `toml:"zone" json:"zone"`
			Engine string `toml:"engine" json:"engine"`
		} `toml:"labels" json:"labels"`
	} `toml:"server" json:"server"`
	Storage struct {
		DataDir                        string  `toml:"data-dir" json:"data-dir"`
		GcRatioThreshold               float64 `toml:"gc-ratio-threshold" json:"gc-ratio-threshold"`
		MaxKeySize                     int     `toml:"max-key-size" json:"max-key-size"`
		SchedulerConcurrency           int     `toml:"scheduler-concurrency" json:"scheduler-concurrency"`
		SchedulerWorkerPoolSize        int     `toml:"scheduler-worker-pool-size" json:"scheduler-worker-pool-size"`
		SchedulerPendingWriteThreshold string  `toml:"scheduler-pending-write-threshold" json:"scheduler-pending-write-threshold"`
		ReserveSpace                   string  `toml:"reserve-space" json:"reserve-space"`
		EnableAsyncApplyPrewrite       bool    `toml:"enable-async-apply-prewrite" json:"enable-async-apply-prewrite"`
		EnableTTL                      bool    `toml:"enable-ttl" json:"enable-ttl"`
		TTLCheckPollInterval           string  `toml:"ttl-check-poll-interval" json:"ttl-check-poll-interval"`
		BlockCache                     struct {
			Shared              bool    `toml:"shared" json:"shared"`
			Capacity            string  `toml:"capacity" json:"capacity"`
			NumShardBits        int     `toml:"num-shard-bits" json:"num-shard-bits"`
			StrictCapacityLimit bool    `toml:"strict-capacity-limit" json:"strict-capacity-limit"`
			HighPriPoolRatio    float64 `toml:"high-pri-pool-ratio" json:"high-pri-pool-ratio"`
			MemoryAllocator     string  `toml:"memory-allocator" json:"memory-allocator"`
		} `toml:"block-cache" json:"block-cache"`
		IoRateLimit struct {
			MaxBytesPerSec              string `toml:"max-bytes-per-sec" json:"max-bytes-per-sec"`
			Mode                        string `toml:"mode" json:"mode"`
			Strict                      bool   `toml:"strict" json:"strict"`
			ForegroundReadPriority      string `toml:"foreground-read-priority" json:"foreground-read-priority"`
			ForegroundWritePriority     string `toml:"foreground-write-priority" json:"foreground-write-priority"`
			FlushPriority               string `toml:"flush-priority" json:"flush-priority"`
			LevelZeroCompactionPriority string `toml:"level-zero-compaction-priority" json:"level-zero-compaction-priority"`
			CompactionPriority          string `toml:"compaction-priority" json:"compaction-priority"`
			ReplicationPriority         string `toml:"replication-priority" json:"replication-priority"`
			LoadBalancePriority         string `toml:"load-balance-priority" json:"load-balance-priority"`
			GcPriority                  string `toml:"gc-priority" json:"gc-priority"`
			ImportPriority              string `toml:"import-priority" json:"import-priority"`
			ExportPriority              string `toml:"export-priority" json:"export-priority"`
			OtherPriority               string `toml:"other-priority" json:"other-priority"`
		} `toml:"io-rate-limit" json:"io-rate-limit"`
	} `toml:"storage" json:"storage"`
	Pd struct {
		Endpoints        []string `toml:"endpoints" json:"endpoints"`
		RetryInterval    string   `toml:"retry-interval" json:"retry-interval"`
		RetryMaxCount    int64    `toml:"retry-max-count" json:"retry-max-count"`
		RetryLogEvery    int      `toml:"retry-log-every" json:"retry-log-every"`
		UpdateInterval   string   `toml:"update-interval" json:"update-interval"`
		EnableForwarding bool     `toml:"enable-forwarding" json:"enable-forwarding"`
	} `toml:"pd" json:"pd"`
	Raftstore struct {
		Prevote                          bool   `toml:"prevote" json:"prevote"`
		RaftdbPath                       string `toml:"raftdb-path" json:"raftdb-path"`
		Capacity                         string `toml:"capacity" json:"capacity"`
		RaftEntryMaxSize                 string `toml:"raft-entry-max-size" json:"raft-entry-max-size"`
		RaftLogGcTickInterval            string `toml:"raft-log-gc-tick-interval" json:"raft-log-gc-tick-interval"`
		RaftLogGcThreshold               int    `toml:"raft-log-gc-threshold" json:"raft-log-gc-threshold"`
		RaftLogGcCountLimit              int    `toml:"raft-log-gc-count-limit" json:"raft-log-gc-count-limit"`
		RaftLogGcSizeLimit               string `toml:"raft-log-gc-size-limit" json:"raft-log-gc-size-limit"`
		RaftEnginePurgeInterval          string `toml:"raft-engine-purge-interval" json:"raft-engine-purge-interval"`
		RaftEntryCacheLifeTime           string `toml:"raft-entry-cache-life-time" json:"raft-entry-cache-life-time"`
		RaftRejectTransferLeaderDuration string `toml:"raft-reject-transfer-leader-duration" json:"raft-reject-transfer-leader-duration"`
		SplitRegionCheckTickInterval     string `toml:"split-region-check-tick-interval" json:"split-region-check-tick-interval"`
		RegionSplitCheckDiff             string `toml:"region-split-check-diff" json:"region-split-check-diff"`
		RegionCompactCheckInterval       string `toml:"region-compact-check-interval" json:"region-compact-check-interval"`
		RegionCompactCheckStep           int    `toml:"region-compact-check-step" json:"region-compact-check-step"`
		RegionCompactMinTombstones       int    `toml:"region-compact-min-tombstones" json:"region-compact-min-tombstones"`
		RegionCompactTombstonesPercent   int    `toml:"region-compact-tombstones-percent" json:"region-compact-tombstones-percent"`
		PdHeartbeatTickInterval          string `toml:"pd-heartbeat-tick-interval" json:"pd-heartbeat-tick-interval"`
		PdStoreHeartbeatTickInterval     string `toml:"pd-store-heartbeat-tick-interval" json:"pd-store-heartbeat-tick-interval"`
		SnapMgrGcTickInterval            string `toml:"snap-mgr-gc-tick-interval" json:"snap-mgr-gc-tick-interval"`
		SnapGcTimeout                    string `toml:"snap-gc-timeout" json:"snap-gc-timeout"`
		LockCfCompactInterval            string `toml:"lock-cf-compact-interval" json:"lock-cf-compact-interval"`
		LockCfCompactBytesThreshold      string `toml:"lock-cf-compact-bytes-threshold" json:"lock-cf-compact-bytes-threshold"`
		NotifyCapacity                   int    `toml:"notify-capacity" json:"notify-capacity"`
		MessagesPerTick                  int    `toml:"messages-per-tick" json:"messages-per-tick"`
		MaxPeerDownDuration              string `toml:"max-peer-down-duration" json:"max-peer-down-duration"`
		MaxLeaderMissingDuration         string `toml:"max-leader-missing-duration" json:"max-leader-missing-duration"`
		AbnormalLeaderMissingDuration    string `toml:"abnormal-leader-missing-duration" json:"abnormal-leader-missing-duration"`
		PeerStaleStateCheckInterval      string `toml:"peer-stale-state-check-interval" json:"peer-stale-state-check-interval"`
		SnapApplyBatchSize               string `toml:"snap-apply-batch-size" json:"snap-apply-batch-size"`
		SnapHandlePoolSize               int    `toml:"snap-handle-pool-size" json:"snap-handle-pool-size"`
		RegionWorkerTickInterval         string `toml:"region-worker-tick-interval" json:"region-worker-tick-interval"`
		ConsistencyCheckInterval         string `toml:"consistency-check-interval" json:"consistency-check-interval"`
		RaftStoreMaxLeaderLease          string `toml:"raft-store-max-leader-lease" json:"raft-store-max-leader-lease"`
		AllowRemoveLeader                bool   `toml:"allow-remove-leader" json:"allow-remove-leader"`
		MergeCheckTickInterval           string `toml:"merge-check-tick-interval" json:"merge-check-tick-interval"`
		CleanupImportSstInterval         string `toml:"cleanup-import-sst-interval" json:"cleanup-import-sst-interval"`
		LocalReadBatchSize               int    `toml:"local-read-batch-size" json:"local-read-batch-size"`
		ApplyMaxBatchSize                int    `toml:"apply-max-batch-size" json:"apply-max-batch-size"`
		ApplyPoolSize                    int    `toml:"apply-pool-size" json:"apply-pool-size"`
		ApplyRescheduleDuration          string `toml:"apply-reschedule-duration" json:"apply-reschedule-duration"`
		ApplyLowPriorityPoolSize         int    `toml:"apply-low-priority-pool-size" json:"apply-low-priority-pool-size"`
		StoreMaxBatchSize                int    `toml:"store-max-batch-size" json:"store-max-batch-size"`
		StorePoolSize                    int    `toml:"store-pool-size" json:"store-pool-size"`
		StoreRescheduleDuration          string `toml:"store-reschedule-duration" json:"store-reschedule-duration"`
		StoreLowPriorityPoolSize         int    `toml:"store-low-priority-pool-size" json:"store-low-priority-pool-size"`
		FuturePollSize                   int    `toml:"future-poll-size" json:"future-poll-size"`
		HibernateRegions                 bool   `toml:"hibernate-regions" json:"hibernate-regions"`
		PerfLevel                        int    `toml:"perf-level" json:"perf-level"`
		StoreBatchRetryRecvTimeout       string `toml:"store-batch-retry-recv-timeout" json:"store-batch-retry-recv-timeout"`
	} `toml:"raftstore" json:"raftstore"`
	Coprocessor struct {
		SplitRegionOnTable     bool   `toml:"split-region-on-table" json:"split-region-on-table"`
		BatchSplitLimit        int    `toml:"batch-split-limit" json:"batch-split-limit"`
		RegionMaxSize          string `toml:"region-max-size" json:"region-max-size"`
		RegionSplitSize        string `toml:"region-split-size" json:"region-split-size"`
		RegionMaxKeys          int    `toml:"region-max-keys" json:"region-max-keys"`
		RegionSplitKeys        int    `toml:"region-split-keys" json:"region-split-keys"`
		ConsistencyCheckMethod string `toml:"consistency-check-method" json:"consistency-check-method"`
		PerfLevel              int    `toml:"perf-level" json:"perf-level"`
	} `toml:"coprocessor" json:"coprocessor"`
	CoprocessorV2 struct {
		CoprocessorPluginDirectory interface{} `toml:"coprocessor-plugin-directory" json:"coprocessor-plugin-directory"`
	} `toml:"coprocessor-v2" json:"coprocessor-v2"`
	Rocksdb struct {
		InfoLogLevel                     string `toml:"info-log-level" json:"info-log-level"`
		WalRecoveryMode                  int    `toml:"wal-recovery-mode" json:"wal-recovery-mode"`
		WalDir                           string `toml:"wal-dir" json:"wal-dir"`
		WalTTLSeconds                    int    `toml:"wal-ttl-seconds" json:"wal-ttl-seconds"`
		WalSizeLimit                     string `toml:"wal-size-limit" json:"wal-size-limit"`
		MaxTotalWalSize                  string `toml:"max-total-wal-size" json:"max-total-wal-size"`
		MaxBackgroundJobs                int    `toml:"max-background-jobs" json:"max-background-jobs"`
		MaxBackgroundFlushes             int    `toml:"max-background-flushes" json:"max-background-flushes"`
		MaxManifestFileSize              string `toml:"max-manifest-file-size" json:"max-manifest-file-size"`
		CreateIfMissing                  bool   `toml:"create-if-missing" json:"create-if-missing"`
		MaxOpenFiles                     int    `toml:"max-open-files" json:"max-open-files"`
		EnableStatistics                 bool   `toml:"enable-statistics" json:"enable-statistics"`
		StatsDumpPeriod                  string `toml:"stats-dump-period" json:"stats-dump-period"`
		CompactionReadaheadSize          string `toml:"compaction-readahead-size" json:"compaction-readahead-size"`
		InfoLogMaxSize                   string `toml:"info-log-max-size" json:"info-log-max-size"`
		InfoLogRollTime                  string `toml:"info-log-roll-time" json:"info-log-roll-time"`
		InfoLogKeepLogFileNum            int    `toml:"info-log-keep-log-file-num" json:"info-log-keep-log-file-num"`
		InfoLogDir                       string `toml:"info-log-dir" json:"info-log-dir"`
		RateBytesPerSec                  string `toml:"rate-bytes-per-sec" json:"rate-bytes-per-sec"`
		RateLimiterRefillPeriod          string `toml:"rate-limiter-refill-period" json:"rate-limiter-refill-period"`
		RateLimiterMode                  int    `toml:"rate-limiter-mode" json:"rate-limiter-mode"`
		RateLimiterAutoTuned             bool   `toml:"rate-limiter-auto-tuned" json:"rate-limiter-auto-tuned"`
		BytesPerSync                     string `toml:"bytes-per-sync" json:"bytes-per-sync"`
		WalBytesPerSync                  string `toml:"wal-bytes-per-sync" json:"wal-bytes-per-sync"`
		MaxSubCompactions                int    `toml:"max-sub-compactions" json:"max-sub-compactions"`
		WritableFileMaxBufferSize        string `toml:"writable-file-max-buffer-size" json:"writable-file-max-buffer-size"`
		UseDirectIoForFlushAndCompaction bool   `toml:"use-direct-io-for-flush-and-compaction" json:"use-direct-io-for-flush-and-compaction"`
		EnablePipelinedWrite             bool   `toml:"enable-pipelined-write" json:"enable-pipelined-write"`
		EnableMultiBatchWrite            bool   `toml:"enable-multi-batch-write" json:"enable-multi-batch-write"`
		EnableUnorderedWrite             bool   `toml:"enable-unordered-write" json:"enable-unordered-write"`
		Defaultcf                        struct {
			BlockSize                           string   `toml:"block-size" json:"block-size"`
			BlockCacheSize                      string   `toml:"block-cache-size" json:"block-cache-size"`
			DisableBlockCache                   bool     `toml:"disable-block-cache" json:"disable-block-cache"`
			CacheIndexAndFilterBlocks           bool     `toml:"cache-index-and-filter-blocks" json:"cache-index-and-filter-blocks"`
			PinL0FilterAndIndexBlocks           bool     `toml:"pin-l0-filter-and-index-blocks" json:"pin-l0-filter-and-index-blocks"`
			UseBloomFilter                      bool     `toml:"use-bloom-filter" json:"use-bloom-filter"`
			OptimizeFiltersForHits              bool     `toml:"optimize-filters-for-hits" json:"optimize-filters-for-hits"`
			WholeKeyFiltering                   bool     `toml:"whole-key-filtering" json:"whole-key-filtering"`
			BloomFilterBitsPerKey               int      `toml:"bloom-filter-bits-per-key" json:"bloom-filter-bits-per-key"`
			BlockBasedBloomFilter               bool     `toml:"block-based-bloom-filter" json:"block-based-bloom-filter"`
			ReadAmpBytesPerBit                  int      `toml:"read-amp-bytes-per-bit" json:"read-amp-bytes-per-bit"`
			CompressionPerLevel                 []string `toml:"compression-per-level" json:"compression-per-level"`
			WriteBufferSize                     string   `toml:"write-buffer-size" json:"write-buffer-size"`
			MaxWriteBufferNumber                int      `toml:"max-write-buffer-number" json:"max-write-buffer-number"`
			MinWriteBufferNumberToMerge         int      `toml:"min-write-buffer-number-to-merge" json:"min-write-buffer-number-to-merge"`
			MaxBytesForLevelBase                string   `toml:"max-bytes-for-level-base" json:"max-bytes-for-level-base"`
			TargetFileSizeBase                  string   `toml:"target-file-size-base" json:"target-file-size-base"`
			Level0FileNumCompactionTrigger      int      `toml:"level0-file-num-compaction-trigger" json:"level0-file-num-compaction-trigger"`
			Level0SlowdownWritesTrigger         int      `toml:"level0-slowdown-writes-trigger" json:"level0-slowdown-writes-trigger"`
			Level0StopWritesTrigger             int      `toml:"level0-stop-writes-trigger" json:"level0-stop-writes-trigger"`
			MaxCompactionBytes                  string   `toml:"max-compaction-bytes" json:"max-compaction-bytes"`
			CompactionPri                       int      `toml:"compaction-pri" json:"compaction-pri"`
			DynamicLevelBytes                   bool     `toml:"dynamic-level-bytes" json:"dynamic-level-bytes"`
			NumLevels                           int      `toml:"num-levels" json:"num-levels"`
			MaxBytesForLevelMultiplier          int      `toml:"max-bytes-for-level-multiplier" json:"max-bytes-for-level-multiplier"`
			CompactionStyle                     int      `toml:"compaction-style" json:"compaction-style"`
			DisableAutoCompactions              bool     `toml:"disable-auto-compactions" json:"disable-auto-compactions"`
			SoftPendingCompactionBytesLimit     string   `toml:"soft-pending-compaction-bytes-limit" json:"soft-pending-compaction-bytes-limit"`
			HardPendingCompactionBytesLimit     string   `toml:"hard-pending-compaction-bytes-limit" json:"hard-pending-compaction-bytes-limit"`
			ForceConsistencyChecks              bool     `toml:"force-consistency-checks" json:"force-consistency-checks"`
			PropSizeIndexDistance               int      `toml:"prop-size-index-distance" json:"prop-size-index-distance"`
			PropKeysIndexDistance               int      `toml:"prop-keys-index-distance" json:"prop-keys-index-distance"`
			EnableDoublySkiplist                bool     `toml:"enable-doubly-skiplist" json:"enable-doubly-skiplist"`
			EnableCompactionGuard               bool     `toml:"enable-compaction-guard" json:"enable-compaction-guard"`
			CompactionGuardMinOutputFileSize    string   `toml:"compaction-guard-min-output-file-size" json:"compaction-guard-min-output-file-size"`
			CompactionGuardMaxOutputFileSize    string   `toml:"compaction-guard-max-output-file-size" json:"compaction-guard-max-output-file-size"`
			BottommostLevelCompression          string   `toml:"bottommost-level-compression" json:"bottommost-level-compression"`
			BottommostZstdCompressionDictSize   int      `toml:"bottommost-zstd-compression-dict-size" json:"bottommost-zstd-compression-dict-size"`
			BottommostZstdCompressionSampleSize int      `toml:"bottommost-zstd-compression-sample-size" json:"bottommost-zstd-compression-sample-size"`
			Titan                               struct {
				MinBlobSize             string  `toml:"min-blob-size" json:"min-blob-size"`
				BlobFileCompression     string  `toml:"blob-file-compression" json:"blob-file-compression"`
				BlobCacheSize           string  `toml:"blob-cache-size" json:"blob-cache-size"`
				MinGcBatchSize          string  `toml:"min-gc-batch-size" json:"min-gc-batch-size"`
				MaxGcBatchSize          string  `toml:"max-gc-batch-size" json:"max-gc-batch-size"`
				DiscardableRatio        float64 `toml:"discardable-ratio" json:"discardable-ratio"`
				SampleRatio             float64 `toml:"sample-ratio" json:"sample-ratio"`
				MergeSmallFileThreshold string  `toml:"merge-small-file-threshold" json:"merge-small-file-threshold"`
				BlobRunMode             string  `toml:"blob-run-mode" json:"blob-run-mode"`
				LevelMerge              bool    `toml:"level-merge" json:"level-merge"`
				RangeMerge              bool    `toml:"range-merge" json:"range-merge"`
				MaxSortedRuns           int     `toml:"max-sorted-runs" json:"max-sorted-runs"`
				GcMergeRewrite          bool    `toml:"gc-merge-rewrite" json:"gc-merge-rewrite"`
			} `toml:"titan" json:"titan"`
		} `toml:"defaultcf" json:"defaultcf"`
		Writecf struct {
			BlockSize                           string   `toml:"block-size" json:"block-size"`
			BlockCacheSize                      string   `toml:"block-cache-size" json:"block-cache-size"`
			DisableBlockCache                   bool     `toml:"disable-block-cache" json:"disable-block-cache"`
			CacheIndexAndFilterBlocks           bool     `toml:"cache-index-and-filter-blocks" json:"cache-index-and-filter-blocks"`
			PinL0FilterAndIndexBlocks           bool     `toml:"pin-l0-filter-and-index-blocks" json:"pin-l0-filter-and-index-blocks"`
			UseBloomFilter                      bool     `toml:"use-bloom-filter" json:"use-bloom-filter"`
			OptimizeFiltersForHits              bool     `toml:"optimize-filters-for-hits" json:"optimize-filters-for-hits"`
			WholeKeyFiltering                   bool     `toml:"whole-key-filtering" json:"whole-key-filtering"`
			BloomFilterBitsPerKey               int      `toml:"bloom-filter-bits-per-key" json:"bloom-filter-bits-per-key"`
			BlockBasedBloomFilter               bool     `toml:"block-based-bloom-filter" json:"block-based-bloom-filter"`
			ReadAmpBytesPerBit                  int      `toml:"read-amp-bytes-per-bit" json:"read-amp-bytes-per-bit"`
			CompressionPerLevel                 []string `toml:"compression-per-level" json:"compression-per-level"`
			WriteBufferSize                     string   `toml:"write-buffer-size" json:"write-buffer-size"`
			MaxWriteBufferNumber                int      `toml:"max-write-buffer-number" json:"max-write-buffer-number"`
			MinWriteBufferNumberToMerge         int      `toml:"min-write-buffer-number-to-merge" json:"min-write-buffer-number-to-merge"`
			MaxBytesForLevelBase                string   `toml:"max-bytes-for-level-base" json:"max-bytes-for-level-base"`
			TargetFileSizeBase                  string   `toml:"target-file-size-base" json:"target-file-size-base"`
			Level0FileNumCompactionTrigger      int      `toml:"level0-file-num-compaction-trigger" json:"level0-file-num-compaction-trigger"`
			Level0SlowdownWritesTrigger         int      `toml:"level0-slowdown-writes-trigger" json:"level0-slowdown-writes-trigger"`
			Level0StopWritesTrigger             int      `toml:"level0-stop-writes-trigger" json:"level0-stop-writes-trigger"`
			MaxCompactionBytes                  string   `toml:"max-compaction-bytes" json:"max-compaction-bytes"`
			CompactionPri                       int      `toml:"compaction-pri" json:"compaction-pri"`
			DynamicLevelBytes                   bool     `toml:"dynamic-level-bytes" json:"dynamic-level-bytes"`
			NumLevels                           int      `toml:"num-levels" json:"num-levels"`
			MaxBytesForLevelMultiplier          int      `toml:"max-bytes-for-level-multiplier" json:"max-bytes-for-level-multiplier"`
			CompactionStyle                     int      `toml:"compaction-style" json:"compaction-style"`
			DisableAutoCompactions              bool     `toml:"disable-auto-compactions" json:"disable-auto-compactions"`
			SoftPendingCompactionBytesLimit     string   `toml:"soft-pending-compaction-bytes-limit" json:"soft-pending-compaction-bytes-limit"`
			HardPendingCompactionBytesLimit     string   `toml:"hard-pending-compaction-bytes-limit" json:"hard-pending-compaction-bytes-limit"`
			ForceConsistencyChecks              bool     `toml:"force-consistency-checks" json:"force-consistency-checks"`
			PropSizeIndexDistance               int      `toml:"prop-size-index-distance" json:"prop-size-index-distance"`
			PropKeysIndexDistance               int      `toml:"prop-keys-index-distance" json:"prop-keys-index-distance"`
			EnableDoublySkiplist                bool     `toml:"enable-doubly-skiplist" json:"enable-doubly-skiplist"`
			EnableCompactionGuard               bool     `toml:"enable-compaction-guard" json:"enable-compaction-guard"`
			CompactionGuardMinOutputFileSize    string   `toml:"compaction-guard-min-output-file-size" json:"compaction-guard-min-output-file-size"`
			CompactionGuardMaxOutputFileSize    string   `toml:"compaction-guard-max-output-file-size" json:"compaction-guard-max-output-file-size"`
			BottommostLevelCompression          string   `toml:"bottommost-level-compression" json:"bottommost-level-compression"`
			BottommostZstdCompressionDictSize   int      `toml:"bottommost-zstd-compression-dict-size" json:"bottommost-zstd-compression-dict-size"`
			BottommostZstdCompressionSampleSize int      `toml:"bottommost-zstd-compression-sample-size" json:"bottommost-zstd-compression-sample-size"`
			Titan                               struct {
				MinBlobSize             string  `toml:"min-blob-size" json:"min-blob-size"`
				BlobFileCompression     string  `toml:"blob-file-compression" json:"blob-file-compression"`
				BlobCacheSize           string  `toml:"blob-cache-size" json:"blob-cache-size"`
				MinGcBatchSize          string  `toml:"min-gc-batch-size" json:"min-gc-batch-size"`
				MaxGcBatchSize          string  `toml:"max-gc-batch-size" json:"max-gc-batch-size"`
				DiscardableRatio        float64 `toml:"discardable-ratio" json:"discardable-ratio"`
				SampleRatio             float64 `toml:"sample-ratio" json:"sample-ratio"`
				MergeSmallFileThreshold string  `toml:"merge-small-file-threshold" json:"merge-small-file-threshold"`
				BlobRunMode             string  `toml:"blob-run-mode" json:"blob-run-mode"`
				LevelMerge              bool    `toml:"level-merge" json:"level-merge"`
				RangeMerge              bool    `toml:"range-merge" json:"range-merge"`
				MaxSortedRuns           int     `toml:"max-sorted-runs" json:"max-sorted-runs"`
				GcMergeRewrite          bool    `toml:"gc-merge-rewrite" json:"gc-merge-rewrite"`
			} `toml:"titan" json:"titan"`
		} `toml:"writecf" json:"writecf"`
		Lockcf struct {
			BlockSize                           string   `toml:"block-size" json:"block-size"`
			BlockCacheSize                      string   `toml:"block-cache-size" json:"block-cache-size"`
			DisableBlockCache                   bool     `toml:"disable-block-cache" json:"disable-block-cache"`
			CacheIndexAndFilterBlocks           bool     `toml:"cache-index-and-filter-blocks" json:"cache-index-and-filter-blocks"`
			PinL0FilterAndIndexBlocks           bool     `toml:"pin-l0-filter-and-index-blocks" json:"pin-l0-filter-and-index-blocks"`
			UseBloomFilter                      bool     `toml:"use-bloom-filter" json:"use-bloom-filter"`
			OptimizeFiltersForHits              bool     `toml:"optimize-filters-for-hits" json:"optimize-filters-for-hits"`
			WholeKeyFiltering                   bool     `toml:"whole-key-filtering" json:"whole-key-filtering"`
			BloomFilterBitsPerKey               int      `toml:"bloom-filter-bits-per-key" json:"bloom-filter-bits-per-key"`
			BlockBasedBloomFilter               bool     `toml:"block-based-bloom-filter" json:"block-based-bloom-filter"`
			ReadAmpBytesPerBit                  int      `toml:"read-amp-bytes-per-bit" json:"read-amp-bytes-per-bit"`
			CompressionPerLevel                 []string `toml:"compression-per-level" json:"compression-per-level"`
			WriteBufferSize                     string   `toml:"write-buffer-size" json:"write-buffer-size"`
			MaxWriteBufferNumber                int      `toml:"max-write-buffer-number" json:"max-write-buffer-number"`
			MinWriteBufferNumberToMerge         int      `toml:"min-write-buffer-number-to-merge" json:"min-write-buffer-number-to-merge"`
			MaxBytesForLevelBase                string   `toml:"max-bytes-for-level-base" json:"max-bytes-for-level-base"`
			TargetFileSizeBase                  string   `toml:"target-file-size-base" json:"target-file-size-base"`
			Level0FileNumCompactionTrigger      int      `toml:"level0-file-num-compaction-trigger" json:"level0-file-num-compaction-trigger"`
			Level0SlowdownWritesTrigger         int      `toml:"level0-slowdown-writes-trigger" json:"level0-slowdown-writes-trigger"`
			Level0StopWritesTrigger             int      `toml:"level0-stop-writes-trigger" json:"level0-stop-writes-trigger"`
			MaxCompactionBytes                  string   `toml:"max-compaction-bytes" json:"max-compaction-bytes"`
			CompactionPri                       int      `toml:"compaction-pri" json:"compaction-pri"`
			DynamicLevelBytes                   bool     `toml:"dynamic-level-bytes" json:"dynamic-level-bytes"`
			NumLevels                           int      `toml:"num-levels" json:"num-levels"`
			MaxBytesForLevelMultiplier          int      `toml:"max-bytes-for-level-multiplier" json:"max-bytes-for-level-multiplier"`
			CompactionStyle                     int      `toml:"compaction-style" json:"compaction-style"`
			DisableAutoCompactions              bool     `toml:"disable-auto-compactions" json:"disable-auto-compactions"`
			SoftPendingCompactionBytesLimit     string   `toml:"soft-pending-compaction-bytes-limit" json:"soft-pending-compaction-bytes-limit"`
			HardPendingCompactionBytesLimit     string   `toml:"hard-pending-compaction-bytes-limit" json:"hard-pending-compaction-bytes-limit"`
			ForceConsistencyChecks              bool     `toml:"force-consistency-checks" json:"force-consistency-checks"`
			PropSizeIndexDistance               int      `toml:"prop-size-index-distance" json:"prop-size-index-distance"`
			PropKeysIndexDistance               int      `toml:"prop-keys-index-distance" json:"prop-keys-index-distance"`
			EnableDoublySkiplist                bool     `toml:"enable-doubly-skiplist" json:"enable-doubly-skiplist"`
			EnableCompactionGuard               bool     `toml:"enable-compaction-guard" json:"enable-compaction-guard"`
			CompactionGuardMinOutputFileSize    string   `toml:"compaction-guard-min-output-file-size" json:"compaction-guard-min-output-file-size"`
			CompactionGuardMaxOutputFileSize    string   `toml:"compaction-guard-max-output-file-size" json:"compaction-guard-max-output-file-size"`
			BottommostLevelCompression          string   `toml:"bottommost-level-compression" json:"bottommost-level-compression"`
			BottommostZstdCompressionDictSize   int      `toml:"bottommost-zstd-compression-dict-size" json:"bottommost-zstd-compression-dict-size"`
			BottommostZstdCompressionSampleSize int      `toml:"bottommost-zstd-compression-sample-size" json:"bottommost-zstd-compression-sample-size"`
			Titan                               struct {
				MinBlobSize             string  `toml:"min-blob-size" json:"min-blob-size"`
				BlobFileCompression     string  `toml:"blob-file-compression" json:"blob-file-compression"`
				BlobCacheSize           string  `toml:"blob-cache-size" json:"blob-cache-size"`
				MinGcBatchSize          string  `toml:"min-gc-batch-size" json:"min-gc-batch-size"`
				MaxGcBatchSize          string  `toml:"max-gc-batch-size" json:"max-gc-batch-size"`
				DiscardableRatio        float64 `toml:"discardable-ratio" json:"discardable-ratio"`
				SampleRatio             float64 `toml:"sample-ratio" json:"sample-ratio"`
				MergeSmallFileThreshold string  `toml:"merge-small-file-threshold" json:"merge-small-file-threshold"`
				BlobRunMode             string  `toml:"blob-run-mode" json:"blob-run-mode"`
				LevelMerge              bool    `toml:"level-merge" json:"level-merge"`
				RangeMerge              bool    `toml:"range-merge" json:"range-merge"`
				MaxSortedRuns           int     `toml:"max-sorted-runs" json:"max-sorted-runs"`
				GcMergeRewrite          bool    `toml:"gc-merge-rewrite" json:"gc-merge-rewrite"`
			} `toml:"titan" json:"titan"`
		} `toml:"lockcf" json:"lockcf"`
		Raftcf struct {
			BlockSize                           string   `toml:"block-size" json:"block-size"`
			BlockCacheSize                      string   `toml:"block-cache-size" json:"block-cache-size"`
			DisableBlockCache                   bool     `toml:"disable-block-cache" json:"disable-block-cache"`
			CacheIndexAndFilterBlocks           bool     `toml:"cache-index-and-filter-blocks" json:"cache-index-and-filter-blocks"`
			PinL0FilterAndIndexBlocks           bool     `toml:"pin-l0-filter-and-index-blocks" json:"pin-l0-filter-and-index-blocks"`
			UseBloomFilter                      bool     `toml:"use-bloom-filter" json:"use-bloom-filter"`
			OptimizeFiltersForHits              bool     `toml:"optimize-filters-for-hits" json:"optimize-filters-for-hits"`
			WholeKeyFiltering                   bool     `toml:"whole-key-filtering" json:"whole-key-filtering"`
			BloomFilterBitsPerKey               int      `toml:"bloom-filter-bits-per-key" json:"bloom-filter-bits-per-key"`
			BlockBasedBloomFilter               bool     `toml:"block-based-bloom-filter" json:"block-based-bloom-filter"`
			ReadAmpBytesPerBit                  int      `toml:"read-amp-bytes-per-bit" json:"read-amp-bytes-per-bit"`
			CompressionPerLevel                 []string `toml:"compression-per-level" json:"compression-per-level"`
			WriteBufferSize                     string   `toml:"write-buffer-size" json:"write-buffer-size"`
			MaxWriteBufferNumber                int      `toml:"max-write-buffer-number" json:"max-write-buffer-number"`
			MinWriteBufferNumberToMerge         int      `toml:"min-write-buffer-number-to-merge" json:"min-write-buffer-number-to-merge"`
			MaxBytesForLevelBase                string   `toml:"max-bytes-for-level-base" json:"max-bytes-for-level-base"`
			TargetFileSizeBase                  string   `toml:"target-file-size-base" json:"target-file-size-base"`
			Level0FileNumCompactionTrigger      int      `toml:"level0-file-num-compaction-trigger" json:"level0-file-num-compaction-trigger"`
			Level0SlowdownWritesTrigger         int      `toml:"level0-slowdown-writes-trigger" json:"level0-slowdown-writes-trigger"`
			Level0StopWritesTrigger             int      `toml:"level0-stop-writes-trigger" json:"level0-stop-writes-trigger"`
			MaxCompactionBytes                  string   `toml:"max-compaction-bytes" json:"max-compaction-bytes"`
			CompactionPri                       int      `toml:"compaction-pri" json:"compaction-pri"`
			DynamicLevelBytes                   bool     `toml:"dynamic-level-bytes" json:"dynamic-level-bytes"`
			NumLevels                           int      `toml:"num-levels" json:"num-levels"`
			MaxBytesForLevelMultiplier          int      `toml:"max-bytes-for-level-multiplier" json:"max-bytes-for-level-multiplier"`
			CompactionStyle                     int      `toml:"compaction-style" json:"compaction-style"`
			DisableAutoCompactions              bool     `toml:"disable-auto-compactions" json:"disable-auto-compactions"`
			SoftPendingCompactionBytesLimit     string   `toml:"soft-pending-compaction-bytes-limit" json:"soft-pending-compaction-bytes-limit"`
			HardPendingCompactionBytesLimit     string   `toml:"hard-pending-compaction-bytes-limit" json:"hard-pending-compaction-bytes-limit"`
			ForceConsistencyChecks              bool     `toml:"force-consistency-checks" json:"force-consistency-checks"`
			PropSizeIndexDistance               int      `toml:"prop-size-index-distance" json:"prop-size-index-distance"`
			PropKeysIndexDistance               int      `toml:"prop-keys-index-distance" json:"prop-keys-index-distance"`
			EnableDoublySkiplist                bool     `toml:"enable-doubly-skiplist" json:"enable-doubly-skiplist"`
			EnableCompactionGuard               bool     `toml:"enable-compaction-guard" json:"enable-compaction-guard"`
			CompactionGuardMinOutputFileSize    string   `toml:"compaction-guard-min-output-file-size" json:"compaction-guard-min-output-file-size"`
			CompactionGuardMaxOutputFileSize    string   `toml:"compaction-guard-max-output-file-size" json:"compaction-guard-max-output-file-size"`
			BottommostLevelCompression          string   `toml:"bottommost-level-compression" json:"bottommost-level-compression"`
			BottommostZstdCompressionDictSize   int      `toml:"bottommost-zstd-compression-dict-size" json:"bottommost-zstd-compression-dict-size"`
			BottommostZstdCompressionSampleSize int      `toml:"bottommost-zstd-compression-sample-size" json:"bottommost-zstd-compression-sample-size"`
			Titan                               struct {
				MinBlobSize             string  `toml:"min-blob-size" json:"min-blob-size"`
				BlobFileCompression     string  `toml:"blob-file-compression" json:"blob-file-compression"`
				BlobCacheSize           string  `toml:"blob-cache-size" json:"blob-cache-size"`
				MinGcBatchSize          string  `toml:"min-gc-batch-size" json:"min-gc-batch-size"`
				MaxGcBatchSize          string  `toml:"max-gc-batch-size" json:"max-gc-batch-size"`
				DiscardableRatio        float64 `toml:"discardable-ratio" json:"discardable-ratio"`
				SampleRatio             float64 `toml:"sample-ratio" json:"sample-ratio"`
				MergeSmallFileThreshold string  `toml:"merge-small-file-threshold" json:"merge-small-file-threshold"`
				BlobRunMode             string  `toml:"blob-run-mode" json:"blob-run-mode"`
				LevelMerge              bool    `toml:"level-merge" json:"level-merge"`
				RangeMerge              bool    `toml:"range-merge" json:"range-merge"`
				MaxSortedRuns           int     `toml:"max-sorted-runs" json:"max-sorted-runs"`
				GcMergeRewrite          bool    `toml:"gc-merge-rewrite" json:"gc-merge-rewrite"`
			} `toml:"titan" json:"titan"`
		} `toml:"raftcf" json:"raftcf"`
		Titan struct {
			Enabled                  bool   `toml:"enabled" json:"enabled"`
			Dirname                  string `toml:"dirname" json:"dirname"`
			DisableGc                bool   `toml:"disable-gc" json:"disable-gc"`
			MaxBackgroundGc          int    `toml:"max-background-gc" json:"max-background-gc"`
			PurgeObsoleteFilesPeriod string `toml:"purge-obsolete-files-period" json:"purge-obsolete-files-period"`
		} `toml:"titan" json:"titan"`
	} `toml:"rocksdb" json:"rocksdb"`
	Raftdb struct {
		WalRecoveryMode                  int    `toml:"wal-recovery-mode" json:"wal-recovery-mode"`
		WalDir                           string `toml:"wal-dir" json:"wal-dir"`
		WalTTLSeconds                    int    `toml:"wal-ttl-seconds" json:"wal-ttl-seconds"`
		WalSizeLimit                     string `toml:"wal-size-limit" json:"wal-size-limit"`
		MaxTotalWalSize                  string `toml:"max-total-wal-size" json:"max-total-wal-size"`
		MaxBackgroundJobs                int    `toml:"max-background-jobs" json:"max-background-jobs"`
		MaxBackgroundFlushes             int    `toml:"max-background-flushes" json:"max-background-flushes"`
		MaxManifestFileSize              string `toml:"max-manifest-file-size" json:"max-manifest-file-size"`
		CreateIfMissing                  bool   `toml:"create-if-missing" json:"create-if-missing"`
		MaxOpenFiles                     int    `toml:"max-open-files" json:"max-open-files"`
		EnableStatistics                 bool   `toml:"enable-statistics" json:"enable-statistics"`
		StatsDumpPeriod                  string `toml:"stats-dump-period" json:"stats-dump-period"`
		CompactionReadaheadSize          string `toml:"compaction-readahead-size" json:"compaction-readahead-size"`
		InfoLogMaxSize                   string `toml:"info-log-max-size" json:"info-log-max-size"`
		InfoLogRollTime                  string `toml:"info-log-roll-time" json:"info-log-roll-time"`
		InfoLogKeepLogFileNum            int    `toml:"info-log-keep-log-file-num" json:"info-log-keep-log-file-num"`
		InfoLogDir                       string `toml:"info-log-dir" json:"info-log-dir"`
		InfoLogLevel                     string `toml:"info-log-level" json:"info-log-level"`
		MaxSubCompactions                int    `toml:"max-sub-compactions" json:"max-sub-compactions"`
		WritableFileMaxBufferSize        string `toml:"writable-file-max-buffer-size" json:"writable-file-max-buffer-size"`
		UseDirectIoForFlushAndCompaction bool   `toml:"use-direct-io-for-flush-and-compaction" json:"use-direct-io-for-flush-and-compaction"`
		EnablePipelinedWrite             bool   `toml:"enable-pipelined-write" json:"enable-pipelined-write"`
		EnableUnorderedWrite             bool   `toml:"enable-unordered-write" json:"enable-unordered-write"`
		AllowConcurrentMemtableWrite     bool   `toml:"allow-concurrent-memtable-write" json:"allow-concurrent-memtable-write"`
		BytesPerSync                     string `toml:"bytes-per-sync" json:"bytes-per-sync"`
		WalBytesPerSync                  string `toml:"wal-bytes-per-sync" json:"wal-bytes-per-sync"`
		Defaultcf                        struct {
			BlockSize                           string   `toml:"block-size" json:"block-size"`
			BlockCacheSize                      string   `toml:"block-cache-size" json:"block-cache-size"`
			DisableBlockCache                   bool     `toml:"disable-block-cache" json:"disable-block-cache"`
			CacheIndexAndFilterBlocks           bool     `toml:"cache-index-and-filter-blocks" json:"cache-index-and-filter-blocks"`
			PinL0FilterAndIndexBlocks           bool     `toml:"pin-l0-filter-and-index-blocks" json:"pin-l0-filter-and-index-blocks"`
			UseBloomFilter                      bool     `toml:"use-bloom-filter" json:"use-bloom-filter"`
			OptimizeFiltersForHits              bool     `toml:"optimize-filters-for-hits" json:"optimize-filters-for-hits"`
			WholeKeyFiltering                   bool     `toml:"whole-key-filtering" json:"whole-key-filtering"`
			BloomFilterBitsPerKey               int      `toml:"bloom-filter-bits-per-key" json:"bloom-filter-bits-per-key"`
			BlockBasedBloomFilter               bool     `toml:"block-based-bloom-filter" json:"block-based-bloom-filter"`
			ReadAmpBytesPerBit                  int      `toml:"read-amp-bytes-per-bit" json:"read-amp-bytes-per-bit"`
			CompressionPerLevel                 []string `toml:"compression-per-level" json:"compression-per-level"`
			WriteBufferSize                     string   `toml:"write-buffer-size" json:"write-buffer-size"`
			MaxWriteBufferNumber                int      `toml:"max-write-buffer-number" json:"max-write-buffer-number"`
			MinWriteBufferNumberToMerge         int      `toml:"min-write-buffer-number-to-merge" json:"min-write-buffer-number-to-merge"`
			MaxBytesForLevelBase                string   `toml:"max-bytes-for-level-base" json:"max-bytes-for-level-base"`
			TargetFileSizeBase                  string   `toml:"target-file-size-base" json:"target-file-size-base"`
			Level0FileNumCompactionTrigger      int      `toml:"level0-file-num-compaction-trigger" json:"level0-file-num-compaction-trigger"`
			Level0SlowdownWritesTrigger         int      `toml:"level0-slowdown-writes-trigger" json:"level0-slowdown-writes-trigger"`
			Level0StopWritesTrigger             int      `toml:"level0-stop-writes-trigger" json:"level0-stop-writes-trigger"`
			MaxCompactionBytes                  string   `toml:"max-compaction-bytes" json:"max-compaction-bytes"`
			CompactionPri                       int      `toml:"compaction-pri" json:"compaction-pri"`
			DynamicLevelBytes                   bool     `toml:"dynamic-level-bytes" json:"dynamic-level-bytes"`
			NumLevels                           int      `toml:"num-levels" json:"num-levels"`
			MaxBytesForLevelMultiplier          int      `toml:"max-bytes-for-level-multiplier" json:"max-bytes-for-level-multiplier"`
			CompactionStyle                     int      `toml:"compaction-style" json:"compaction-style"`
			DisableAutoCompactions              bool     `toml:"disable-auto-compactions" json:"disable-auto-compactions"`
			SoftPendingCompactionBytesLimit     string   `toml:"soft-pending-compaction-bytes-limit" json:"soft-pending-compaction-bytes-limit"`
			HardPendingCompactionBytesLimit     string   `toml:"hard-pending-compaction-bytes-limit" json:"hard-pending-compaction-bytes-limit"`
			ForceConsistencyChecks              bool     `toml:"force-consistency-checks" json:"force-consistency-checks"`
			PropSizeIndexDistance               int      `toml:"prop-size-index-distance" json:"prop-size-index-distance"`
			PropKeysIndexDistance               int      `toml:"prop-keys-index-distance" json:"prop-keys-index-distance"`
			EnableDoublySkiplist                bool     `toml:"enable-doubly-skiplist" json:"enable-doubly-skiplist"`
			EnableCompactionGuard               bool     `toml:"enable-compaction-guard" json:"enable-compaction-guard"`
			CompactionGuardMinOutputFileSize    string   `toml:"compaction-guard-min-output-file-size" json:"compaction-guard-min-output-file-size"`
			CompactionGuardMaxOutputFileSize    string   `toml:"compaction-guard-max-output-file-size" json:"compaction-guard-max-output-file-size"`
			BottommostLevelCompression          string   `toml:"bottommost-level-compression" json:"bottommost-level-compression"`
			BottommostZstdCompressionDictSize   int      `toml:"bottommost-zstd-compression-dict-size" json:"bottommost-zstd-compression-dict-size"`
			BottommostZstdCompressionSampleSize int      `toml:"bottommost-zstd-compression-sample-size" json:"bottommost-zstd-compression-sample-size"`
			Titan                               struct {
				MinBlobSize             string  `toml:"min-blob-size" json:"min-blob-size"`
				BlobFileCompression     string  `toml:"blob-file-compression" json:"blob-file-compression"`
				BlobCacheSize           string  `toml:"blob-cache-size" json:"blob-cache-size"`
				MinGcBatchSize          string  `toml:"min-gc-batch-size" json:"min-gc-batch-size"`
				MaxGcBatchSize          string  `toml:"max-gc-batch-size" json:"max-gc-batch-size"`
				DiscardableRatio        float64 `toml:"discardable-ratio" json:"discardable-ratio"`
				SampleRatio             float64 `toml:"sample-ratio" json:"sample-ratio"`
				MergeSmallFileThreshold string  `toml:"merge-small-file-threshold" json:"merge-small-file-threshold"`
				BlobRunMode             string  `toml:"blob-run-mode" json:"blob-run-mode"`
				LevelMerge              bool    `toml:"level-merge" json:"level-merge"`
				RangeMerge              bool    `toml:"range-merge" json:"range-merge"`
				MaxSortedRuns           int     `toml:"max-sorted-runs" json:"max-sorted-runs"`
				GcMergeRewrite          bool    `toml:"gc-merge-rewrite" json:"gc-merge-rewrite"`
			} `toml:"titan" json:"titan"`
		} `toml:"defaultcf" json:"defaultcf"`
		Titan struct {
			Enabled                  bool   `toml:"enabled" json:"enabled"`
			Dirname                  string `toml:"dirname" json:"dirname"`
			DisableGc                bool   `toml:"disable-gc" json:"disable-gc"`
			MaxBackgroundGc          int    `toml:"max-background-gc" json:"max-background-gc"`
			PurgeObsoleteFilesPeriod string `toml:"purge-obsolete-files-period" json:"purge-obsolete-files-period"`
		} `toml:"titan" json:"titan"`
	} `toml:"raftdb" json:"raftdb"`
	RaftEngine struct {
		Enable                    bool   `toml:"enable" json:"enable"`
		Dir                       string `toml:"dir" json:"dir"`
		RecoveryMode              string `toml:"recovery-mode" json:"recovery-mode"`
		BytesPerSync              string `toml:"bytes-per-sync" json:"bytes-per-sync"`
		TargetFileSize            string `toml:"target-file-size" json:"target-file-size"`
		PurgeThreshold            string `toml:"purge-threshold" json:"purge-threshold"`
		CacheLimit                string `toml:"cache-limit" json:"cache-limit"`
		BatchCompressionThreshold string `toml:"batch-compression-threshold" json:"batch-compression-threshold"`
	} `toml:"raft-engine" json:"raft-engine"`
	Security struct {
		CaPath        string        `toml:"ca-path" json:"ca-path"`
		CertPath      string        `toml:"cert-path" json:"cert-path"`
		KeyPath       string        `toml:"key-path" json:"key-path"`
		CertAllowedCn []interface{} `toml:"cert-allowed-cn" json:"cert-allowed-cn"`
		RedactInfoLog interface{}   `toml:"redact-info-log" json:"redact-info-log"`
		Encryption    struct {
			DataEncryptionMethod           string `toml:"data-encryption-method" json:"data-encryption-method"`
			DataKeyRotationPeriod          string `toml:"data-key-rotation-period" json:"data-key-rotation-period"`
			EnableFileDictionaryLog        bool   `toml:"enable-file-dictionary-log" json:"enable-file-dictionary-log"`
			FileDictionaryRewriteThreshold int    `toml:"file-dictionary-rewrite-threshold" json:"file-dictionary-rewrite-threshold"`
			MasterKey                      struct {
				Type string `toml:"type" json:"type"`
			} `toml:"master-key" json:"master-key"`
			PreviousMasterKey struct {
				Type string `toml:"type" json:"type"`
			} `toml:"previous-master-key" json:"previous-master-key"`
		} `toml:"encryption" json:"encryption"`
	} `toml:"security" json:"security"`
	Import struct {
		NumThreads          int    `toml:"num-threads" json:"num-threads"`
		StreamChannelWindow int    `toml:"stream-channel-window" json:"stream-channel-window"`
		ImportModeTimeout   string `toml:"import-mode-timeout" json:"import-mode-timeout"`
	} `toml:"import" json:"import"`
	Backup struct {
		NumThreads int    `toml:"num-threads" json:"num-threads"`
		BatchSize  int    `toml:"batch-size" json:"batch-size"`
		SstMaxSize string `toml:"sst-max-size" json:"sst-max-size"`
	} `toml:"backup" json:"backup"`
	PessimisticTxn struct {
		WaitForLockTimeout  string `toml:"wait-for-lock-timeout" json:"wait-for-lock-timeout"`
		WakeUpDelayDuration string `toml:"wake-up-delay-duration" json:"wake-up-delay-duration"`
		Pipelined           bool   `toml:"pipelined" json:"pipelined"`
	} `toml:"pessimistic-txn" json:"pessimistic-txn"`
	Gc struct {
		RatioThreshold                   float64 `toml:"ratio-threshold" json:"ratio-threshold"`
		BatchKeys                        int     `toml:"batch-keys" json:"batch-keys"`
		MaxWriteBytesPerSec              string  `toml:"max-write-bytes-per-sec" json:"max-write-bytes-per-sec"`
		EnableCompactionFilter           bool    `toml:"enable-compaction-filter" json:"enable-compaction-filter"`
		CompactionFilterSkipVersionCheck bool    `toml:"compaction-filter-skip-version-check" json:"compaction-filter-skip-version-check"`
	} `toml:"gc" json:"gc"`
	Split struct {
		QPSThreshold        int     `toml:"qps-threshold" json:"qps-threshold"`
		SplitBalanceScore   float64 `toml:"split-balance-score" json:"split-balance-score"`
		SplitContainedScore float64 `toml:"split-contained-score" json:"split-contained-score"`
		DetectTimes         int     `toml:"detect-times" json:"detect-times"`
		SampleNum           int     `toml:"sample-num" json:"sample-num"`
		SampleThreshold     int     `toml:"sample-threshold" json:"sample-threshold"`
		ByteThreshold       int     `toml:"byte-threshold" json:"byte-threshold"`
	} `toml:"split" json:"split"`
	Cdc struct {
		MinTsInterval              string `toml:"min-ts-interval" json:"min-ts-interval"`
		HibernateRegionsCompatible bool   `toml:"hibernate-regions-compatible" json:"hibernate-regions-compatible"`
		IncrementalScanThreads     int    `toml:"incremental-scan-threads" json:"incremental-scan-threads"`
		IncrementalScanConcurrency int    `toml:"incremental-scan-concurrency" json:"incremental-scan-concurrency"`
		IncrementalScanSpeedLimit  string `toml:"incremental-scan-speed-limit" json:"incremental-scan-speed-limit"`
		SinkMemoryQuota            string `toml:"sink-memory-quota" json:"sink-memory-quota"`
		OldValueCacheMemoryQuota   string `toml:"old-value-cache-memory-quota" json:"old-value-cache-memory-quota"`
		OldValueCacheSize          int    `toml:"old-value-cache-size" json:"old-value-cache-size"`
	} `toml:"cdc" json:"cdc"`
	ResolvedTs struct {
		Enable            bool   `toml:"enable" json:"enable"`
		AdvanceTsInterval string `toml:"advance-ts-interval" json:"advance-ts-interval"`
		ScanLockPoolSize  int    `toml:"scan-lock-pool-size" json:"scan-lock-pool-size"`
	} `toml:"resolved-ts" json:"resolved-ts"`
	ResourceMetering struct {
		Enabled             bool   `toml:"enabled" json:"enabled"`
		AgentAddress        string `toml:"agent-address" json:"agent-address"`
		ReportAgentInterval string `toml:"report-agent-interval" json:"report-agent-interval"`
		MaxResourceGroups   int    `toml:"max-resource-groups" json:"max-resource-groups"`
		Precision           string `toml:"precision" json:"precision"`
	} `toml:"resource-metering" json:"resource-metering"`
}

type TiflashConfigData

type TiflashConfigData struct {
	*TiflashConfig
	Port int // TODO move to meta
}

func NewTiflashConfigData

func NewTiflashConfigData() *TiflashConfigData

func (*TiflashConfigData) ActingName

func (cfg *TiflashConfigData) ActingName() string

func (*TiflashConfigData) GetComponent

func (cfg *TiflashConfigData) GetComponent() string

func (*TiflashConfigData) GetPort

func (cfg *TiflashConfigData) GetPort() int

func (*TiflashConfigData) GetValueByTagPath

func (cfg *TiflashConfigData) GetValueByTagPath(tagPath string) reflect.Value

type TikvConfig

type TikvConfig struct {
	Log                          Log            `toml:"log" json:"log"`
	LogLevel                     string         `toml:"log-level" json:"log-level"`
	LogFile                      string         `toml:"log-file" json:"log-file"`
	LogFormat                    string         `toml:"log-format" json:"log-format"`
	SlowLogFile                  string         `toml:"slow-log-file" json:"slow-log-file"`
	SlowLogThreshold             string         `toml:"slow-log-threshold" json:"slow-log-threshold"`
	LogRotationTimespan          string         `toml:"log-rotation-timespan" json:"log-rotation-timespan"`
	LogRotationSize              string         `toml:"log-rotation-size" json:"log-rotation-size"`
	PanicWhenUnexpectedKeyOrData bool           `toml:"panic-when-unexpected-key-or-data" json:"panic-when-unexpected-key-or-data"`
	EnableIoSnoop                bool           `toml:"enable-io-snoop" json:"enable-io-snoop"`
	AbortOnPanic                 bool           `toml:"abort-on-panic" json:"abort-on-panic"`
	MemoryUsageHighWater         float64        `toml:"memory-usage-high-water" json:"memory-usage-high-water"`
	ReadPool                     ReadPoolConfig `toml:"readpool" json:"readpool"`
	Server                       ServerConfig   `toml:"server" json:"server"`
	Storage                      StorageConfig  `toml:"storage" json:"storage"`
	Pd                           PDConfig       `toml:"pd" json:"pd"`
	Metric                       struct {
		Job string `toml:"job" json:"job"`
	} `toml:"metric" json:"metric"`
	RaftStore     RaftStoreConfig   `toml:"raftstore" json:"raftstore"`
	Coprocessor   CoprocessorConfig `toml:"coprocessor" json:"coprocessor"`
	CoprocessorV2 struct {
	} `toml:"coprocessor-v2" json:"coprocessor-v2"`
	Rocksdb struct {
		InfoLogLevel                     string   `toml:"info-log-level" json:"info-log-level"`
		WalRecoveryMode                  int      `toml:"wal-recovery-mode" json:"wal-recovery-mode"`
		WalDir                           string   `toml:"wal-dir" json:"wal-dir"`
		WalTTLSeconds                    int      `toml:"wal-ttl-seconds" json:"wal-ttl-seconds"`
		WalSizeLimit                     string   `toml:"wal-size-limit" json:"wal-size-limit"`
		MaxTotalWalSize                  string   `toml:"max-total-wal-size" json:"max-total-wal-size"`
		MaxBackgroundJobs                int      `toml:"max-background-jobs" json:"max-background-jobs"`
		MaxBackgroundFlushes             int      `toml:"max-background-flushes" json:"max-background-flushes"`
		MaxManifestFileSize              string   `toml:"max-manifest-file-size" json:"max-manifest-file-size"`
		CreateIfMissing                  bool     `toml:"create-if-missing" json:"create-if-missing"`
		MaxOpenFiles                     int      `toml:"max-open-files" json:"max-open-files"`
		EnableStatistics                 bool     `toml:"enable-statistics" json:"enable-statistics"`
		StatsDumpPeriod                  string   `toml:"stats-dump-period" json:"stats-dump-period"`
		CompactionReadaheadSize          string   `toml:"compaction-readahead-size" json:"compaction-readahead-size"`
		InfoLogMaxSize                   string   `toml:"info-log-max-size" json:"info-log-max-size"`
		InfoLogRollTime                  string   `toml:"info-log-roll-time" json:"info-log-roll-time"`
		InfoLogKeepLogFileNum            int      `toml:"info-log-keep-log-file-num" json:"info-log-keep-log-file-num"`
		InfoLogDir                       string   `toml:"info-log-dir" json:"info-log-dir"`
		RateBytesPerSec                  string   `toml:"rate-bytes-per-sec" json:"rate-bytes-per-sec"`
		RateLimiterRefillPeriod          string   `toml:"rate-limiter-refill-period" json:"rate-limiter-refill-period"`
		RateLimiterMode                  int      `toml:"rate-limiter-mode" json:"rate-limiter-mode"`
		RateLimiterAutoTuned             bool     `toml:"rate-limiter-auto-tuned" json:"rate-limiter-auto-tuned"`
		BytesPerSync                     string   `toml:"bytes-per-sync" json:"bytes-per-sync"`
		WalBytesPerSync                  string   `toml:"wal-bytes-per-sync" json:"wal-bytes-per-sync"`
		MaxSubCompactions                int      `toml:"max-sub-compactions" json:"max-sub-compactions"`
		WritableFileMaxBufferSize        string   `toml:"writable-file-max-buffer-size" json:"writable-file-max-buffer-size"`
		UseDirectIoForFlushAndCompaction bool     `toml:"use-direct-io-for-flush-and-compaction" json:"use-direct-io-for-flush-and-compaction"`
		EnablePipelinedWrite             bool     `toml:"enable-pipelined-write" json:"enable-pipelined-write"`
		EnableMultiBatchWrite            bool     `toml:"enable-multi-batch-write" json:"enable-multi-batch-write"`
		EnableUnorderedWrite             bool     `toml:"enable-unordered-write" json:"enable-unordered-write"`
		DefaultCF                        CFConfig `toml:"defaultcf" json:"defaultcf"`
		WriteCF                          CFConfig `toml:"writecf" json:"writecf"`
		LockCF                           CFConfig `toml:"lockcf" json:"lockcf"`
		RaftCF                           CFConfig `toml:"raftcf" json:"raftcf"`
		Titan                            struct {
			Enabled                  bool   `toml:"enabled" json:"enabled"`
			Dirname                  string `toml:"dirname" json:"dirname"`
			DisableGc                bool   `toml:"disable-gc" json:"disable-gc"`
			MaxBackgroundGc          int    `toml:"max-background-gc" json:"max-background-gc"`
			PurgeObsoleteFilesPeriod string `toml:"purge-obsolete-files-period" json:"purge-obsolete-files-period"`
		} `toml:"titan" json:"titan"`
	} `toml:"rocksdb" json:"rocksdb"`
	RaftDB struct {
		WalRecoveryMode                  int      `toml:"wal-recovery-mode" json:"wal-recovery-mode"`
		WalDir                           string   `toml:"wal-dir" json:"wal-dir"`
		WalTTLSeconds                    int      `toml:"wal-ttl-seconds" json:"wal-ttl-seconds"`
		WalSizeLimit                     string   `toml:"wal-size-limit" json:"wal-size-limit"`
		MaxTotalWalSize                  string   `toml:"max-total-wal-size" json:"max-total-wal-size"`
		MaxBackgroundJobs                int      `toml:"max-background-jobs" json:"max-background-jobs"`
		MaxBackgroundFlushes             int      `toml:"max-background-flushes" json:"max-background-flushes"`
		MaxManifestFileSize              string   `toml:"max-manifest-file-size" json:"max-manifest-file-size"`
		CreateIfMissing                  bool     `toml:"create-if-missing" json:"create-if-missing"`
		MaxOpenFiles                     int      `toml:"max-open-files" json:"max-open-files"`
		EnableStatistics                 bool     `toml:"enable-statistics" json:"enable-statistics"`
		StatsDumpPeriod                  string   `toml:"stats-dump-period" json:"stats-dump-period"`
		CompactionReadaheadSize          string   `toml:"compaction-readahead-size" json:"compaction-readahead-size"`
		InfoLogMaxSize                   string   `toml:"info-log-max-size" json:"info-log-max-size"`
		InfoLogRollTime                  string   `toml:"info-log-roll-time" json:"info-log-roll-time"`
		InfoLogKeepLogFileNum            int      `toml:"info-log-keep-log-file-num" json:"info-log-keep-log-file-num"`
		InfoLogDir                       string   `toml:"info-log-dir" json:"info-log-dir"`
		InfoLogLevel                     string   `toml:"info-log-level" json:"info-log-level"`
		MaxSubCompactions                int      `toml:"max-sub-compactions" json:"max-sub-compactions"`
		WritableFileMaxBufferSize        string   `toml:"writable-file-max-buffer-size" json:"writable-file-max-buffer-size"`
		UseDirectIoForFlushAndCompaction bool     `toml:"use-direct-io-for-flush-and-compaction" json:"use-direct-io-for-flush-and-compaction"`
		EnablePipelinedWrite             bool     `toml:"enable-pipelined-write" json:"enable-pipelined-write"`
		EnableUnorderedWrite             bool     `toml:"enable-unordered-write" json:"enable-unordered-write"`
		AllowConcurrentMemtableWrite     bool     `toml:"allow-concurrent-memtable-write" json:"allow-concurrent-memtable-write"`
		BytesPerSync                     string   `toml:"bytes-per-sync" json:"bytes-per-sync"`
		WalBytesPerSync                  string   `toml:"wal-bytes-per-sync" json:"wal-bytes-per-sync"`
		DefaultCF                        CFConfig `toml:"defaultcf" json:"defaultcf"`
		Titan                            struct {
			Enabled                  bool   `toml:"enabled" json:"enabled"`
			Dirname                  string `toml:"dirname" json:"dirname"`
			DisableGc                bool   `toml:"disable-gc" json:"disable-gc"`
			MaxBackgroundGc          int    `toml:"max-background-gc" json:"max-background-gc"`
			PurgeObsoleteFilesPeriod string `toml:"purge-obsolete-files-period" json:"purge-obsolete-files-period"`
		} `toml:"titan" json:"titan"`
	} `toml:"raftdb" json:"raftdb"`
	RaftEngine struct {
		Enable                    bool   `toml:"enable" json:"enable"`
		Dir                       string `toml:"dir" json:"dir"`
		RecoveryMode              string `toml:"recovery-mode" json:"recovery-mode"`
		BytesPerSync              string `toml:"bytes-per-sync" json:"bytes-per-sync"`
		TargetFileSize            string `toml:"target-file-size" json:"target-file-size"`
		PurgeThreshold            string `toml:"purge-threshold" json:"purge-threshold"`
		BatchCompressionThreshold string `toml:"batch-compression-threshold" json:"batch-compression-threshold"`
	} `toml:"raft-engine" json:"raft-engine"`
	Security struct {
		CaPath        string        `toml:"ca-path" json:"ca-path"`
		CertPath      string        `toml:"cert-path" json:"cert-path"`
		KeyPath       string        `toml:"key-path" json:"key-path"`
		CertAllowedCn []interface{} `toml:"cert-allowed-cn" json:"cert-allowed-cn"`
		RedactInfoLog bool          `toml:"redact-info-log" json:"redact-info-log"`
		Encryption    struct {
			DataEncryptionMethod           string `toml:"data-encryption-method" json:"data-encryption-method"`
			DataKeyRotationPeriod          string `toml:"data-key-rotation-period" json:"data-key-rotation-period"`
			EnableFileDictionaryLog        bool   `toml:"enable-file-dictionary-log" json:"enable-file-dictionary-log"`
			FileDictionaryRewriteThreshold int    `toml:"file-dictionary-rewrite-threshold" json:"file-dictionary-rewrite-threshold"`
			MasterKey                      struct {
				Type string `toml:"type" json:"type"`
			} `toml:"master-key" json:"master-key"`
			PreviousMasterKey struct {
				Type string `toml:"type" json:"type"`
			} `toml:"previous-master-key" json:"previous-master-key"`
		} `toml:"encryption" json:"encryption"`
	} `toml:"security" json:"security"`
	Import struct {
		NumThreads          int    `toml:"num-threads" json:"num-threads"`
		StreamChannelWindow int    `toml:"stream-channel-window" json:"stream-channel-window"`
		ImportModeTimeout   string `toml:"import-mode-timeout" json:"import-mode-timeout"`
	} `toml:"import" json:"import"`
	Backup struct {
		NumThreads     int    `toml:"num-threads" json:"num-threads"`
		BatchSize      int    `toml:"batch-size" json:"batch-size"`
		SstMaxSize     string `toml:"sst-max-size" json:"sst-max-size"`
		EnableAutoTune bool   `toml:"enable-auto-tune" json:"enable-auto-tune"`
	} `toml:"backup" json:"backup"`
	PessimisticTxn struct {
		WaitForLockTimeout  string `toml:"wait-for-lock-timeout" json:"wait-for-lock-timeout"`
		WakeUpDelayDuration string `toml:"wake-up-delay-duration" json:"wake-up-delay-duration"`
		Pipelined           bool   `toml:"pipelined" json:"pipelined"`
	} `toml:"pessimistic-txn" json:"pessimistic-txn"`
	Gc struct {
		RatioThreshold                   float64 `toml:"ratio-threshold" json:"ratio-threshold"`
		BatchKeys                        int     `toml:"batch-keys" json:"batch-keys"`
		MaxWriteBytesPerSec              string  `toml:"max-write-bytes-per-sec" json:"max-write-bytes-per-sec"`
		EnableCompactionFilter           bool    `toml:"enable-compaction-filter" json:"enable-compaction-filter"`
		CompactionFilterSkipVersionCheck bool    `toml:"compaction-filter-skip-version-check" json:"compaction-filter-skip-version-check"`
	} `toml:"gc" json:"gc"`
	Split struct {
		QPSThreshold        int     `toml:"qps-threshold" json:"qps-threshold"`
		SplitBalanceScore   float64 `toml:"split-balance-score" json:"split-balance-score"`
		SplitContainedScore float64 `toml:"split-contained-score" json:"split-contained-score"`
		DetectTimes         int     `toml:"detect-times" json:"detect-times"`
		SampleNum           int     `toml:"sample-num" json:"sample-num"`
		SampleThreshold     int     `toml:"sample-threshold" json:"sample-threshold"`
		ByteThreshold       int     `toml:"byte-threshold" json:"byte-threshold"`
	} `toml:"split" json:"split"`
	Cdc struct {
		MinTsInterval              string `toml:"min-ts-interval" json:"min-ts-interval"`
		HibernateRegionsCompatible bool   `toml:"hibernate-regions-compatible" json:"hibernate-regions-compatible"`
		IncrementalScanThreads     int    `toml:"incremental-scan-threads" json:"incremental-scan-threads"`
		IncrementalScanConcurrency int    `toml:"incremental-scan-concurrency" json:"incremental-scan-concurrency"`
		IncrementalScanSpeedLimit  string `toml:"incremental-scan-speed-limit" json:"incremental-scan-speed-limit"`
		SinkMemoryQuota            string `toml:"sink-memory-quota" json:"sink-memory-quota"`
		OldValueCacheMemoryQuota   string `toml:"old-value-cache-memory-quota" json:"old-value-cache-memory-quota"`
	} `toml:"cdc" json:"cdc"`
	ResolvedTs struct {
		Enable            bool   `toml:"enable" json:"enable"`
		AdvanceTsInterval string `toml:"advance-ts-interval" json:"advance-ts-interval"`
		ScanLockPoolSize  int    `toml:"scan-lock-pool-size" json:"scan-lock-pool-size"`
	} `toml:"resolved-ts" json:"resolved-ts"`
	ResourceMetering struct {
		Enabled             bool   `toml:"enabled" json:"enabled"`
		AgentAddress        string `toml:"agent-address" json:"agent-address"`
		ReportAgentInterval string `toml:"report-agent-interval" json:"report-agent-interval"`
		MaxResourceGroups   int    `toml:"max-resource-groups" json:"max-resource-groups"`
		Precision           string `toml:"precision" json:"precision"`
	} `toml:"resource-metering" json:"resource-metering"`
}

TikvConfigData is the struct represent TiKV config print from TiKV v5.0.2

type TikvConfigData

type TikvConfigData struct {
	*TikvConfig
	Extra *TikvExtraData
	Port  int // TODO move to meta
	Host  string
}

func NewTikvConfigData

func NewTikvConfigData() *TikvConfigData

func (*TikvConfigData) ActingName

func (cfg *TikvConfigData) ActingName() string

func (*TikvConfigData) CheckNil

func (cfg *TikvConfigData) CheckNil() bool

func (*TikvConfigData) GetComponent

func (cfg *TikvConfigData) GetComponent() string

func (*TikvConfigData) GetHost

func (cfg *TikvConfigData) GetHost() string

func (*TikvConfigData) GetPort

func (cfg *TikvConfigData) GetPort() int

func (*TikvConfigData) GetValueByTagPath

func (cfg *TikvConfigData) GetValueByTagPath(tagPath string) reflect.Value

func (*TikvConfigData) LoadClusterMeta

func (cfg *TikvConfigData) LoadClusterMeta(tidbCluster *models.TiDBCluster, clusterMeta *spec.ClusterMeta)

type TikvExtraData

type TikvExtraData struct {
	TiFlashCnt int
}

type VersionRange

type VersionRange string

func (VersionRange) Contain

func (vr VersionRange) Contain(target string) (bool, error)

Jump to

Keyboard shortcuts

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