[
    {
        "key": "host",
        "type": "string"
    },
    {
        "key": "advertise-address",
        "type": "string"
    },
    {
        "key": "port",
        "type": "int"
    },
    {
        "key": "cors",
        "type": "string"
    },
    {
        "key": "store",
        "type": "string"
    },
    {
        "key": "path",
        "type": "string"
    },
    {
        "key": "socket",
        "type": "string"
    },
    {
        "key": "lease",
        "type": "string"
    },
    {
        "key": "split-table",
        "type": "bool"
    },
    {
        "key": "token-limit",
        "type": "int"
    },
    {
        "key": "temp-dir",
        "type": "string"
    },
    {
        "key": "tmp-storage-path",
        "type": "string"
    },
    {
        "key": "tmp-storage-quota",
        "type": "int",
        "comment": "TempStorageQuota describe the temporary storage Quota during query exector when TiDBEnableTmpStorageOnOOM is enabled\nIf the quota exceed the capacity of the TempStoragePath, the tidb-server would exit with fatal error"
    },
    {
        "key": "server-version",
        "type": "string"
    },
    {
        "key": "version-comment",
        "type": "string"
    },
    {
        "key": "tidb-edition",
        "type": "string"
    },
    {
        "key": "tidb-release-version",
        "type": "string"
    },
    {
        "key": "deploy-mode",
        "type": "string"
    },
    {
        "key": "dxf-resource-limit",
        "type": "int"
    },
    {
        "key": "keyspace-name",
        "type": "string"
    },
    {
        "key": "tikv-worker-url",
        "type": "string"
    },
    {
        "key": "log.level",
        "type": "string",
        "comment": "Log level."
    },
    {
        "key": "log.format",
        "type": "string",
        "comment": "Log format, one of json or text."
    },
    {
        "key": "log.disable-timestamp",
        "type": "bool",
        "comment": "Disable automatic timestamps in output. Deprecated: use EnableTimestamp instead."
    },
    {
        "key": "log.enable-timestamp",
        "type": "bool",
        "comment": "EnableTimestamp enables automatic timestamps in log output."
    },
    {
        "key": "log.disable-error-stack",
        "type": "bool",
        "comment": "DisableErrorStack stops annotating logs with the full stack error\nmessage. Deprecated: use EnableErrorStack instead."
    },
    {
        "key": "log.enable-error-stack",
        "type": "bool",
        "comment": "EnableErrorStack enables annotating logs with the full stack error\nmessage."
    },
    {
        "key": "log.file.filename",
        "type": "string"
    },
    {
        "key": "log.file.max-size",
        "type": "int"
    },
    {
        "key": "log.file.max-days",
        "type": "int"
    },
    {
        "key": "log.file.max-backups",
        "type": "int"
    },
    {
        "key": "log.file.compression",
        "type": "string"
    },
    {
        "key": "log.file.is-buffered",
        "type": "bool"
    },
    {
        "key": "log.file.buffer-size",
        "type": "int"
    },
    {
        "key": "log.file.buffer-flush-interval",
        "type": "string"
    },
    {
        "key": "log.slow-query-file",
        "type": "string"
    },
    {
        "key": "log.expensive-threshold",
        "type": "int",
        "comment": "ExpensiveThreshold is deprecated."
    },
    {
        "key": "log.general-log-file",
        "type": "string"
    },
    {
        "key": "log.query-log-max-len",
        "type": "int",
        "comment": "QueryLogMaxLen unused since bootstrap v90"
    },
    {
        "key": "log.enable-slow-log",
        "type": "bool",
        "comment": "EnableSlowLog, SlowThreshold, RecordPlanInSlowLog are deprecated."
    },
    {
        "key": "log.slow-threshold",
        "type": "int"
    },
    {
        "key": "log.record-plan-in-slow-log",
        "type": "int"
    },
    {
        "key": "log.timeout",
        "type": "int",
        "comment": "Make tidb panic if write log operation hang in `Timeout` seconds"
    },
    {
        "key": "instance.tidb_general_log",
        "type": "bool",
        "comment": "TiDBGeneralLog is used to log every query in the server in info level."
    },
    {
        "key": "instance.tidb_pprof_sql_cpu",
        "type": "bool",
        "comment": "EnablePProfSQLCPU is used to add label sql label to pprof result."
    },
    {
        "key": "instance.ddl_slow_threshold",
        "type": "int",
        "comment": "DDLSlowOprThreshold sets log DDL operations whose execution time exceeds the threshold value."
    },
    {
        "key": "instance.tidb_expensive_query_time_threshold",
        "type": "int",
        "comment": "ExpensiveQueryTimeThreshold indicates the time threshold of expensive query."
    },
    {
        "key": "instance.tidb_expensive_txn_time_threshold",
        "type": "int",
        "comment": "ExpensiveTxnTimeThreshold indicates the time threshold of expensive transaction."
    },
    {
        "key": "instance.tidb_stmt_summary_enable_persistent",
        "type": "bool",
        "comment": "StmtSummaryEnablePersistent indicates whether to enable file persistence for stmtsummary."
    },
    {
        "key": "instance.tidb_stmt_summary_filename",
        "type": "string",
        "comment": "StmtSummaryFilename indicates the file name written by stmtsummary\nwhen StmtSummaryEnablePersistent is true."
    },
    {
        "key": "instance.tidb_stmt_summary_file_max_days",
        "type": "int",
        "comment": "StmtSummaryFileMaxDays indicates how many days the files written by\nstmtsummary will be kept when StmtSummaryEnablePersistent is true."
    },
    {
        "key": "instance.tidb_stmt_summary_file_max_size",
        "type": "int",
        "comment": "StmtSummaryFileMaxSize indicates the maximum size (in mb) of a single file\nwritten by stmtsummary when StmtSummaryEnablePersistent is true."
    },
    {
        "key": "instance.tidb_stmt_summary_file_max_backups",
        "type": "int",
        "comment": "StmtSummaryFileMaxBackups indicates the maximum number of files written\nby stmtsummary when StmtSummaryEnablePersistent is true."
    },
    {
        "key": "instance.tidb_stmt_summary_max_stmt_count",
        "type": "int",
        "comment": "StmtSummaryMaxStmtCount indicates the max number of statements kept in memory."
    },
    {
        "key": "instance.tidb_server_memory_limit",
        "type": "string",
        "comment": "ServerMemoryLimit indicates the memory limit of the tidb-server instance."
    },
    {
        "key": "instance.tidb_mem_arbitrator_mode",
        "type": "string",
        "comment": "MemArbitratorMode indicates the work mode of the global memory arbitrator of the tidb-server instance."
    },
    {
        "key": "instance.tidb_mem_arbitrator_soft_limit",
        "type": "string",
        "comment": "MemArbitratorSoftLimit indicates the memory resource soft limit of the tidb-server instance."
    },
    {
        "key": "instance.tidb_server_memory_limit_gc_trigger",
        "type": "string",
        "comment": "ServerMemoryLimitGCTrigger indicates the gc percentage of the ServerMemoryLimit."
    },
    {
        "key": "instance.tidb_instance_plan_cache_max_size",
        "type": "string",
        "comment": "InstancePlanCacheMaxMemSize indicates the maximum memory size of instance plan cache."
    },
    {
        "key": "instance.tidb_stats_cache_mem_quota",
        "type": "int",
        "comment": "StatsCacheMemQuota records stats cache quota."
    },
    {
        "key": "instance.tidb_mem_quota_binding_cache",
        "type": "int",
        "comment": "MemQuotaBindingCache indicates the memory quota for the bind cache."
    },
    {
        "key": "instance.tidb_schema_cache_size",
        "type": "string",
        "comment": "SchemaCacheSize indicates the size of infoschema meta data which are cached in V2 implementation."
    },
    {
        "key": "instance.tidb_enable_slow_log",
        "type": "bool"
    },
    {
        "key": "instance.tidb_slow_log_threshold",
        "type": "int"
    },
    {
        "key": "instance.tidb_record_plan_in_slow_log",
        "type": "int"
    },
    {
        "key": "instance.tidb_check_mb4_value_in_utf8",
        "type": "bool"
    },
    {
        "key": "instance.tidb_force_priority",
        "type": "string"
    },
    {
        "key": "instance.tidb_memory_usage_alarm_ratio",
        "type": "float"
    },
    {
        "key": "instance.tidb_enable_collect_execution_info",
        "type": "bool",
        "comment": "EnableCollectExecutionInfo enables the TiDB to collect execution info."
    },
    {
        "key": "instance.plugin_dir",
        "type": "string"
    },
    {
        "key": "instance.plugin_load",
        "type": "string"
    },
    {
        "key": "instance.plugin_audit_log_buffer_size",
        "type": "int",
        "comment": "PluginAuditLogBufferSize is the buffer size (in bytes) of plugin audit log, default is 0(buffer disabled)"
    },
    {
        "key": "instance.plugin_audit_log_flush_interval",
        "type": "int",
        "comment": "PluginAuditLogFlushInterval is the flush interval (in seconds) of plugin audit log, it works only when PluginAuditLogBufferSize is greater than 0."
    },
    {
        "key": "instance.max_connections",
        "type": "int",
        "comment": "MaxConnections is the maximum permitted number of simultaneous client connections."
    },
    {
        "key": "instance.tidb_enable_ddl",
        "type": "bool"
    },
    {
        "key": "instance.tidb_enable_stats_owner",
        "type": "bool"
    },
    {
        "key": "instance.tidb_rc_read_check_ts",
        "type": "bool"
    },
    {
        "key": "instance.tidb_service_scope",
        "type": "string",
        "comment": "TiDBServiceScope indicates the role for tidb for distributed task framework."
    },
    {
        "key": "security.skip-grant-table",
        "type": "bool"
    },
    {
        "key": "security.ssl-ca",
        "type": "string"
    },
    {
        "key": "security.ssl-cert",
        "type": "string"
    },
    {
        "key": "security.ssl-key",
        "type": "string"
    },
    {
        "key": "security.cluster-ssl-ca",
        "type": "string"
    },
    {
        "key": "security.cluster-ssl-cert",
        "type": "string"
    },
    {
        "key": "security.cluster-ssl-key",
        "type": "string"
    },
    {
        "key": "security.cluster-verify-cn",
        "type": "json"
    },
    {
        "key": "security.session-token-signing-cert",
        "type": "string",
        "comment": "Used for auth plugin `tidb_session_token`."
    },
    {
        "key": "security.session-token-signing-key",
        "type": "string"
    },
    {
        "key": "security.spilled-file-encryption-method",
        "type": "string",
        "comment": "If set to \"plaintext\", the spilled files will not be encrypted."
    },
    {
        "key": "security.enable-sem",
        "type": "bool",
        "comment": "EnableSEM prevents SUPER users from having full access."
    },
    {
        "key": "security.sem-config",
        "type": "string",
        "comment": "SEMConfig represents the path to the SEM configuration file."
    },
    {
        "key": "security.auto-tls",
        "type": "bool",
        "comment": "Allow automatic TLS certificate generation"
    },
    {
        "key": "security.tls-version",
        "type": "string"
    },
    {
        "key": "security.rsa-key-size",
        "type": "int"
    },
    {
        "key": "security.secure-bootstrap",
        "type": "bool"
    },
    {
        "key": "security.auth-token-jwks",
        "type": "string",
        "comment": "The path of the JWKS for tidb_auth_token authentication"
    },
    {
        "key": "security.auth-token-refresh-interval",
        "type": "string",
        "comment": "The refresh time interval of JWKS"
    },
    {
        "key": "security.disconnect-on-expired-password",
        "type": "bool",
        "comment": "Disconnect directly when the password is expired"
    },
    {
        "key": "status.status-host",
        "type": "string"
    },
    {
        "key": "status.metrics-addr",
        "type": "string"
    },
    {
        "key": "status.status-port",
        "type": "int"
    },
    {
        "key": "status.metrics-interval",
        "type": "int"
    },
    {
        "key": "status.report-status",
        "type": "bool"
    },
    {
        "key": "status.record-db-qps",
        "type": "bool"
    },
    {
        "key": "status.record-db-label",
        "type": "bool"
    },
    {
        "key": "status.grpc-keepalive-time",
        "type": "int",
        "comment": "After a duration of this time in seconds if the server doesn't see any activity it pings\nthe client to see if the transport is still alive."
    },
    {
        "key": "status.grpc-keepalive-timeout",
        "type": "int",
        "comment": "After having pinged for keepalive check, the server waits for a duration of timeout in seconds\nand if no activity is seen even after that the connection is closed."
    },
    {
        "key": "status.grpc-concurrent-streams",
        "type": "int",
        "comment": "The number of max concurrent streams/requests on a client connection."
    },
    {
        "key": "status.grpc-initial-window-size",
        "type": "int",
        "comment": "Sets window size for stream. The default value is 2MB."
    },
    {
        "key": "status.grpc-max-send-msg-size",
        "type": "int",
        "comment": "Set maximum message length in bytes that gRPC can send. `-1` means unlimited. The default value is 10MB."
    },
    {
        "key": "performance.max-procs",
        "type": "int"
    },
    {
        "key": "performance.max-memory",
        "type": "int",
        "comment": "Deprecated: use ServerMemoryQuota instead"
    },
    {
        "key": "performance.server-memory-quota",
        "type": "int"
    },
    {
        "key": "performance.stats-lease",
        "type": "string"
    },
    {
        "key": "performance.stmt-count-limit",
        "type": "int",
        "comment": "Deprecated: transaction auto retry is deprecated."
    },
    {
        "key": "performance.pseudo-estimate-ratio",
        "type": "float"
    },
    {
        "key": "performance.bind-info-lease",
        "type": "string"
    },
    {
        "key": "performance.txn-entry-size-limit",
        "type": "int"
    },
    {
        "key": "performance.txn-total-size-limit",
        "type": "int"
    },
    {
        "key": "performance.tcp-keep-alive",
        "type": "bool"
    },
    {
        "key": "performance.tcp-no-delay",
        "type": "bool"
    },
    {
        "key": "performance.cross-join",
        "type": "bool"
    },
    {
        "key": "performance.distinct-agg-push-down",
        "type": "bool"
    },
    {
        "key": "performance.max-txn-ttl",
        "type": "int"
    },
    {
        "key": "performance.index-usage-sync-lease",
        "type": "string",
        "comment": "Deprecated: this config will not have any effect"
    },
    {
        "key": "performance.plan-replayer-gc-lease",
        "type": "string"
    },
    {
        "key": "performance.gogc",
        "type": "int"
    },
    {
        "key": "performance.enforce-mpp",
        "type": "bool"
    },
    {
        "key": "performance.stats-load-concurrency",
        "type": "int"
    },
    {
        "key": "performance.stats-load-queue-size",
        "type": "int"
    },
    {
        "key": "performance.analyze-partition-concurrency-quota",
        "type": "int",
        "comment": "Deprecated: this config has been deprecated. It has no effect."
    },
    {
        "key": "performance.plan-replayer-dump-worker-concurrency",
        "type": "int"
    },
    {
        "key": "performance.enable-stats-cache-mem-quota",
        "type": "bool"
    },
    {
        "key": "performance.committer-concurrency",
        "type": "int",
        "comment": "CommitterConcurrency, RunAutoAnalyze unused since bootstrap v90"
    },
    {
        "key": "performance.run-auto-analyze",
        "type": "bool"
    },
    {
        "key": "performance.force-priority",
        "type": "string",
        "comment": "ForcePriority, MemoryUsageAlarmRatio are deprecated."
    },
    {
        "key": "performance.memory-usage-alarm-ratio",
        "type": "float"
    },
    {
        "key": "performance.enable-load-fmsketch",
        "type": "bool",
        "comment": "Deprecated: this config has been deprecated. It has no effect."
    },
    {
        "key": "performance.skip-init-stats",
        "type": "bool",
        "comment": "SkipInitStats determines whether to skip initializing statistics when TiDB starts.\nIt is primarily intended for internal use cases in TiDB Cloud and may cause issues if enabled on a standard cluster.\nSee: https://github.com/pingcap/tidb/issues/63103"
    },
    {
        "key": "performance.lite-init-stats",
        "type": "bool",
        "comment": "LiteInitStats indicates whether to use the lite version of stats.\n1. Basic stats meta data is loaded.(count, modify count, etc.)\n2. Column/index stats are loaded. (only histogram)\n3. TopN, Bucket, FMSketch are not loaded.\nThe lite version of stats is enabled by default."
    },
    {
        "key": "performance.force-init-stats",
        "type": "bool",
        "comment": "If ForceInitStats is true, when tidb starts up, it doesn't provide service until init stats is finished.\nIf ForceInitStats is false, tidb can provide service before init stats is finished. Note that during the period\nof init stats the optimizer may make bad decisions due to pseudo stats."
    },
    {
        "key": "performance.concurrently-init-stats",
        "type": "bool",
        "comment": "Deprecated: This setting has no effect, as stats are now always initialized concurrently.\nConcurrentlyInitStats indicates whether to use concurrency for initializing stats."
    },
    {
        "key": "performance.projection-push-down",
        "type": "bool",
        "comment": "Deprecated: this config will not have any effect"
    },
    {
        "key": "performance.enable-async-batch-get",
        "type": "bool",
        "comment": "EnableAsyncBatchGet indicates whether to use async API when sending batch-get requests."
    },
    {
        "key": "prepared-plan-cache.enabled",
        "type": "bool"
    },
    {
        "key": "prepared-plan-cache.capacity",
        "type": "int"
    },
    {
        "key": "prepared-plan-cache.memory-guard-ratio",
        "type": "float"
    },
    {
        "key": "opentracing.enable",
        "type": "bool"
    },
    {
        "key": "opentracing.rpc-metrics",
        "type": "bool"
    },
    {
        "key": "opentracing.sampler.type",
        "type": "string"
    },
    {
        "key": "opentracing.sampler.param",
        "type": "float"
    },
    {
        "key": "opentracing.sampler.sampling-server-url",
        "type": "string"
    },
    {
        "key": "opentracing.sampler.max-operations",
        "type": "int"
    },
    {
        "key": "opentracing.sampler.sampling-refresh-interval",
        "type": "string"
    },
    {
        "key": "opentracing.reporter.queue-size",
        "type": "int"
    },
    {
        "key": "opentracing.reporter.buffer-flush-interval",
        "type": "string"
    },
    {
        "key": "opentracing.reporter.log-spans",
        "type": "bool"
    },
    {
        "key": "opentracing.reporter.local-agent-host-port",
        "type": "string"
    },
    {
        "key": "proxy-protocol.networks",
        "type": "string",
        "comment": "PROXY protocol acceptable client networks.\nEmpty string means disable PROXY protocol,\n* means all networks."
    },
    {
        "key": "proxy-protocol.header-timeout",
        "type": "int",
        "comment": "PROXY protocol header read timeout, Unit is second."
    },
    {
        "key": "proxy-protocol.fallbackable",
        "type": "bool",
        "comment": "PROXY protocol header process fallback-able.\nIf set to true and not send PROXY protocol header, connection will return connection's client IP."
    },
    {
        "key": "pd-client.pd-server-timeout",
        "type": "int"
    },
    {
        "key": "tikv-client.grpc-connection-count",
        "type": "int"
    },
    {
        "key": "tikv-client.grpc-keepalive-time",
        "type": "int"
    },
    {
        "key": "tikv-client.grpc-keepalive-timeout",
        "type": "float"
    },
    {
        "key": "tikv-client.grpc-compression-type",
        "type": "string"
    },
    {
        "key": "tikv-client.grpc-shared-buffer-pool",
        "type": "bool"
    },
    {
        "key": "tikv-client.grpc-initial-window-size",
        "type": "int"
    },
    {
        "key": "tikv-client.grpc-initial-conn-window-size",
        "type": "int"
    },
    {
        "key": "tikv-client.commit-timeout",
        "type": "string"
    },
    {
        "key": "tikv-client.async-commit.keys-limit",
        "type": "int"
    },
    {
        "key": "tikv-client.async-commit.total-key-size-limit",
        "type": "int"
    },
    {
        "key": "tikv-client.async-commit.safe-window",
        "type": "string"
    },
    {
        "key": "tikv-client.async-commit.allowed-clock-drift",
        "type": "string"
    },
    {
        "key": "tikv-client.batch-policy",
        "type": "string"
    },
    {
        "key": "tikv-client.max-batch-size",
        "type": "int"
    },
    {
        "key": "tikv-client.overload-threshold",
        "type": "int"
    },
    {
        "key": "tikv-client.max-batch-wait-time",
        "type": "string"
    },
    {
        "key": "tikv-client.batch-wait-size",
        "type": "int"
    },
    {
        "key": "tikv-client.enable-chunk-rpc",
        "type": "bool"
    },
    {
        "key": "tikv-client.region-cache-ttl",
        "type": "int"
    },
    {
        "key": "tikv-client.store-limit",
        "type": "int"
    },
    {
        "key": "tikv-client.store-liveness-timeout",
        "type": "string"
    },
    {
        "key": "tikv-client.copr-cache.capacity-mb",
        "type": "float"
    },
    {
        "key": "tikv-client.copr-cache.admission-max-ranges",
        "type": "int"
    },
    {
        "key": "tikv-client.copr-cache.admission-max-result-mb",
        "type": "float"
    },
    {
        "key": "tikv-client.copr-cache.admission-min-process-ms",
        "type": "int"
    },
    {
        "key": "tikv-client.copr-req-timeout",
        "type": "string"
    },
    {
        "key": "tikv-client.ttl-refreshed-txn-size",
        "type": "int"
    },
    {
        "key": "tikv-client.resolve-lock-lite-threshold",
        "type": "int"
    },
    {
        "key": "tikv-client.max-concurrency-request-limit",
        "type": "int"
    },
    {
        "key": "tikv-client.enable-replica-selector-v2",
        "type": "bool"
    },
    {
        "key": "tikv-client.ru-v2.ru-scale",
        "type": "float"
    },
    {
        "key": "tikv-client.ru-v2.tikv-kv-engine-cache-miss",
        "type": "float"
    },
    {
        "key": "tikv-client.ru-v2.resource-manager-write-cnt-tikv",
        "type": "float"
    },
    {
        "key": "tikv-client.ru-v2.executor-inputs",
        "type": "float"
    },
    {
        "key": "tikv-client.ru-v2.tikv-coprocessor-executor-iterations",
        "type": "float"
    },
    {
        "key": "tikv-client.ru-v2.tikv-coprocessor-response-bytes",
        "type": "float"
    },
    {
        "key": "tikv-client.ru-v2.tikv-raftstore-store-write-trigger-wb-bytes",
        "type": "float"
    },
    {
        "key": "tikv-client.ru-v2.tikv-storage-processed-keys-batch-get",
        "type": "float"
    },
    {
        "key": "tikv-client.ru-v2.tikv-storage-processed-keys-get",
        "type": "float"
    },
    {
        "key": "ru-v2.ru-scale",
        "type": "float",
        "comment": "RUScale is the scale factor used to convert RU v2 float values into scaled integer values.\nIt is intentionally chosen to match legacy RU values for compatibility."
    },
    {
        "key": "ru-v2.result-chunk-cells",
        "type": "float",
        "comment": "ResultChunkCells is the weight for cells materialized into result chunks."
    },
    {
        "key": "ru-v2.executor-l1",
        "type": "float",
        "comment": "ExecutorL1 is the weight for fast-path executors that scale by cells:\nBatchPointGet, PointGet, and Limit."
    },
    {
        "key": "ru-v2.executor-l2",
        "type": "float",
        "comment": "ExecutorL2 is the weight for general executors, including Expand, HashAgg,\nHashJoin, IndexLookUpJoin, IndexLookUpExecutor, IndexReaderExecutor,\nMemTableReaderExec, MergeJoin, Projection, SelectionExec, SelectLockExec,\nTableDualExec, TableReaderExecutor, TopN, UnionScanExec, and Window."
    },
    {
        "key": "ru-v2.executor-l3",
        "type": "float",
        "comment": "ExecutorL3 is the weight for heavier operators: Sort and StreamAgg."
    },
    {
        "key": "ru-v2.executor-l5-insert-rows",
        "type": "float",
        "comment": "ExecutorL5InsertRows is the weight for insert rows multiplied by inserted\ncolumn count. Level 4 is intentionally unused today because only L1/L2/L3\nexecutor groups and this insert-specific tier are currently modeled."
    },
    {
        "key": "ru-v2.plan-cnt",
        "type": "float"
    },
    {
        "key": "ru-v2.plan-derive-stats-paths",
        "type": "float"
    },
    {
        "key": "ru-v2.resource-manager-read-cnt",
        "type": "float"
    },
    {
        "key": "ru-v2.resource-manager-write-cnt",
        "type": "float"
    },
    {
        "key": "ru-v2.write-keys",
        "type": "float"
    },
    {
        "key": "ru-v2.session-parser-total",
        "type": "float"
    },
    {
        "key": "ru-v2.txn-cnt",
        "type": "float"
    },
    {
        "key": "compatible-kill-query",
        "type": "bool"
    },
    {
        "key": "pessimistic-txn.max-retry-count",
        "type": "int",
        "comment": "The max count of retry for a single statement in a pessimistic transaction."
    },
    {
        "key": "pessimistic-txn.deadlock-history-capacity",
        "type": "int",
        "comment": "The max count of deadlock events that will be recorded in the information_schema.deadlocks table."
    },
    {
        "key": "pessimistic-txn.deadlock-history-collect-retryable",
        "type": "bool",
        "comment": "Whether retryable deadlocks (in-statement deadlocks) are collected to the information_schema.deadlocks table."
    },
    {
        "key": "pessimistic-txn.pessimistic-auto-commit",
        "type": "bool",
        "comment": "PessimisticAutoCommit represents if true it means the auto-commit transactions will be in pessimistic mode."
    },
    {
        "key": "pessimistic-txn.constraint-check-in-place-pessimistic",
        "type": "bool",
        "comment": "ConstraintCheckInPlacePessimistic is the default value for the session variable `tidb_constraint_check_in_place_pessimistic`"
    },
    {
        "key": "max-index-length",
        "type": "int"
    },
    {
        "key": "index-limit",
        "type": "int"
    },
    {
        "key": "table-column-count-limit",
        "type": "int"
    },
    {
        "key": "graceful-wait-before-shutdown",
        "type": "int"
    },
    {
        "key": "alter-primary-key",
        "type": "bool",
        "comment": "AlterPrimaryKey is used to control alter primary key feature."
    },
    {
        "key": "treat-old-version-utf8-as-utf8mb4",
        "type": "bool",
        "comment": "TreatOldVersionUTF8AsUTF8MB4 is use to treat old version table/column UTF8 charset as UTF8MB4. This is for compatibility.\nCurrently not support dynamic modify, because this need to reload all old version schema."
    },
    {
        "key": "enable-table-lock",
        "type": "bool",
        "comment": "EnableTableLock indicate whether enable table lock.\nTODO: remove this after table lock features stable."
    },
    {
        "key": "delay-clean-table-lock",
        "type": "int"
    },
    {
        "key": "split-region-max-num",
        "type": "int"
    },
    {
        "key": "top-sql.receiver-address",
        "type": "string",
        "comment": "The TopSQL's data receiver address."
    },
    {
        "key": "repair-mode",
        "type": "bool",
        "comment": "RepairMode indicates that the TiDB is in the repair mode for table meta."
    },
    {
        "key": "repair-table-list",
        "type": "json"
    },
    {
        "key": "isolation-read.engines",
        "type": "json",
        "comment": "Engines filters tidb-server access paths by engine type."
    },
    {
        "key": "new_collations_enabled_on_first_bootstrap",
        "type": "bool",
        "comment": "NewCollationsEnabledOnFirstBootstrap indicates if the new collations are enabled, it effects only when a TiDB cluster bootstrapped on the first time."
    },
    {
        "key": "experimental.allow-expression-index",
        "type": "bool",
        "comment": "Whether enable creating expression index."
    },
    {
        "key": "experimental.allow-enable-foreign-key-check-in-shared-lock",
        "type": "bool",
        "comment": "Whether SQL users can enable tidb_foreign_key_check_in_shared_lock on next-gen TiKV."
    },
    {
        "key": "experimental.enable-new-charset",
        "type": "bool",
        "comment": "Whether enable charset feature."
    },
    {
        "key": "skip-register-to-dashboard",
        "type": "bool",
        "comment": "SkipRegisterToDashboard tells TiDB don't register itself to the dashboard."
    },
    {
        "key": "enable-telemetry",
        "type": "bool",
        "comment": "EnableTelemetry enables the usage data print to log."
    },
    {
        "key": "labels",
        "type": "json",
        "comment": "Labels indicates the labels set for the tidb server. The labels describe some specific properties for the tidb\nserver like `zone`/`rack`/`host`. Currently, labels won't affect the tidb server except for some special\nlabel keys. Now we have following special keys:\n1. 'group' is a special label key which should be automatically set by tidb-operator. We don't suggest\nusers to set 'group' in labels.\n2. 'zone' is a special key that indicates the DC location of this tidb-server. If it is set, the value for this\nkey will be the default value of the session variable `txn_scope` for this tidb-server."
    },
    {
        "key": "enable-global-index",
        "type": "bool",
        "comment": "EnableGlobalIndex is deprecated."
    },
    {
        "key": "deprecate-integer-display-length",
        "type": "bool",
        "comment": "DeprecateIntegerDisplayWidth indicates whether deprecating the max display length for integer."
    },
    {
        "key": "enable-enum-length-limit",
        "type": "bool",
        "comment": "EnableEnumLengthLimit indicates whether the enum/set element length is limited.\nAccording to MySQL 8.0 Refman:\nThe maximum supported length of an individual SET element is M \u003c= 255 and (M x w) \u003c= 1020,\nwhere M is the element literal length and w is the number of bytes required for the maximum-length character in the character set.\nSee https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html for more details."
    },
    {
        "key": "stores-refresh-interval",
        "type": "int",
        "comment": "StoresRefreshInterval indicates the interval of refreshing stores info, the unit is second."
    },
    {
        "key": "enable-tcp4-only",
        "type": "bool",
        "comment": "EnableTCP4Only enables net.Listen(\"tcp4\",...)\nNote that: it can make lvs with toa work and thus tidb can get real client ip."
    },
    {
        "key": "enable-forwarding",
        "type": "bool",
        "comment": "The client will forward the requests through the follower\nif one of the following conditions happens:\n1. there is a network partition problem between TiDB and PD leader.\n2. there is a network partition problem between TiDB and TiKV leader."
    },
    {
        "key": "max-ballast-object-size",
        "type": "int",
        "comment": "MaxBallastObjectSize set the max size of the ballast object, the unit is byte.\nThe default value is the smallest of the following two values: 2GB or\none quarter of the total physical memory in the current system."
    },
    {
        "key": "ballast-object-size",
        "type": "int",
        "comment": "BallastObjectSize set the initial size of the ballast object, the unit is byte."
    },
    {
        "key": "transaction-summary.transaction-summary-capacity",
        "type": "int",
        "comment": "how many transaction summary in `transaction_summary` each TiDB node should keep."
    },
    {
        "key": "transaction-summary.transaction-id-digest-min-duration",
        "type": "int",
        "comment": "how long a transaction should be executed to make it be recorded in `transaction_id_digest`."
    },
    {
        "key": "enable-global-kill",
        "type": "bool",
        "comment": "EnableGlobalKill indicates whether to enable global kill."
    },
    {
        "key": "enable-32bits-connection-id",
        "type": "bool",
        "comment": "Enable32BitsConnectionID indicates whether to enable 32bits connection ID for global kill."
    },
    {
        "key": "initialize-sql-file",
        "type": "string",
        "comment": "InitializeSQLFile is a file that will be executed after first bootstrap only.\nIt can be used to set GLOBAL system variable values"
    },
    {
        "key": "standby.standby-mode",
        "type": "bool",
        "comment": "StandByMode indicates whether to enable the standby mode."
    },
    {
        "key": "standby.max-idle-seconds",
        "type": "int",
        "comment": "MaxIdleSeconds specifies the maximum idle time in seconds before tidb exits."
    },
    {
        "key": "standby.activation-timeout",
        "type": "int",
        "comment": "ActivationTimeout specifies the maximum allowed time for tidb to activate from standby mode."
    },
    {
        "key": "standby.enable-zero-backend",
        "type": "bool",
        "comment": "EnableZeroBackend is used to control the behavior of standby idle watcher.\nWhen it is enabled, the idle watcher will not wait for session migration\nand will not consider client interactive connections."
    },
    {
        "key": "enable-batch-dml",
        "type": "bool",
        "comment": "EnableBatchDML, MemQuotaQuery, OOMAction unused since bootstrap v90"
    },
    {
        "key": "mem-quota-query",
        "type": "int"
    },
    {
        "key": "oom-action",
        "type": "string"
    },
    {
        "key": "oom-use-tmp-storage",
        "type": "bool",
        "comment": "OOMUseTmpStorage unused since bootstrap v93"
    },
    {
        "key": "check-mb4-value-in-utf8",
        "type": "bool",
        "comment": "These items are deprecated because they are turned into instance system variables."
    },
    {
        "key": "enable-collect-execution-info",
        "type": "bool"
    },
    {
        "key": "plugin.dir",
        "type": "string"
    },
    {
        "key": "plugin.load",
        "type": "string"
    },
    {
        "key": "max-server-connections",
        "type": "int"
    },
    {
        "key": "run-ddl",
        "type": "bool"
    },
    {
        "key": "disaggregated-tiflash",
        "type": "bool",
        "comment": "These configs are related to disaggregated-tiflash mode."
    },
    {
        "key": "autoscaler-type",
        "type": "string"
    },
    {
        "key": "autoscaler-addr",
        "type": "string"
    },
    {
        "key": "is-tiflashcompute-fixed-pool",
        "type": "bool"
    },
    {
        "key": "autoscaler-cluster-id",
        "type": "string"
    },
    {
        "key": "use-autoscaler",
        "type": "bool"
    },
    {
        "key": "tidb-max-reuse-chunk",
        "type": "int",
        "comment": "TiDBMaxReuseChunk indicates max cached chunk num"
    },
    {
        "key": "tidb-max-reuse-column",
        "type": "int",
        "comment": "TiDBMaxReuseColumn indicates max cached column num"
    },
    {
        "key": "tidb-enable-exit-check",
        "type": "bool",
        "comment": "TiDBEnableExitCheck indicates whether exit-checking in domain for background process"
    },
    {
        "key": "in-mem-slow-query-topn-num",
        "type": "int",
        "comment": "InMemSlowQueryTopNNum indicates the number of TopN slow queries stored in memory."
    },
    {
        "key": "in-mem-slow-query-recent-num",
        "type": "int",
        "comment": "InMemSlowQueryRecentNum indicates the number of recent slow queries stored in memory."
    },
    {
        "key": "metering-storage-uri",
        "type": "string",
        "comment": "MeteringConfigURI is the URI for metering configuration."
    },
    {
        "key": "cse.columnar-store-type",
        "type": "string"
    },
    {
        "key": "cse.columnar-collect-timeout",
        "type": "string"
    }
]