-
Notifications
You must be signed in to change notification settings - Fork 4.1k
kvserver: update distribution cluster settings to be system only #98347
Description
Is your feature request related to a problem? Please describe.
There are multiple kv distribution cluster settings that relate to allocation and splitting which are TenantWritable. These settings, if set incorrectly, can quickly destabilize the cluster and lead to under-replication in extreme cases.
Describe the solution you'd like
Update the following settings to be SystemOnly
Settings
cockroach/pkg/kv/kvserver/allocator/storepool/store_pool.go
Lines 49 to 51 in 0495342
| var FailedReservationsTimeout = settings.RegisterDurationSetting( | |
| settings.TenantWritable, | |
| "server.failed_reservation_timeout", |
cockroach/pkg/kv/kvserver/allocator/storepool/store_pool.go
Lines 61 to 62 in 0495342
| var TimeAfterStoreSuspect = settings.RegisterDurationSetting( | |
| settings.TenantWritable, |
cockroach/pkg/kv/kvserver/allocator/storepool/store_pool.go
Lines 84 to 86 in 0495342
| var TimeUntilStoreDead = func() *settings.DurationSetting { | |
| s := settings.RegisterDurationSetting( | |
| settings.TenantWritable, |
cockroach/pkg/kv/kvserver/replicastats/replica_stats.go
Lines 40 to 42 in 0495342
| var AddSSTableRequestSizeFactor = settings.RegisterIntSetting( | |
| settings.TenantWritable, | |
| "kv.replica_stats.addsst_request_size_factor", |
cockroach/pkg/kv/kvserver/kvserverbase/base.go
Lines 205 to 208 in 0495342
| // SplitByLoadMergeDelay wraps "kv.range_split.by_load_merge_delay". | |
| var SplitByLoadMergeDelay = settings.RegisterDurationSetting( | |
| settings.TenantWritable, | |
| "kv.range_split.by_load_merge_delay", |
cockroach/pkg/kv/kvserver/replica_split_load.go
Lines 31 to 33 in 0495342
| var SplitByLoadEnabled = settings.RegisterBoolSetting( | |
| settings.TenantWritable, | |
| "kv.range_split.by_load_enabled", |
cockroach/pkg/kv/kvserver/replica_split_load.go
Lines 39 to 41 in 0495342
| var SplitByLoadQPSThreshold = settings.RegisterIntSetting( | |
| settings.TenantWritable, | |
| "kv.range_split.load_qps_threshold", |
cockroach/pkg/kv/kvserver/replica_split_load.go
Lines 57 to 59 in 0495342
| var SplitByLoadCPUThreshold = settings.RegisterDurationSetting( | |
| settings.TenantWritable, | |
| "kv.range_split.load_cpu_threshold", |
cockroach/pkg/kv/kvserver/queue.go
Lines 55 to 56 in 0495342
| var queueGuaranteedProcessingTimeBudget = settings.RegisterDurationSetting( | |
| settings.TenantWritable, |
cockroach/pkg/kv/kvserver/store.go
Lines 172 to 175 in 0495342
| // Minimum time interval between system config updates which will lead to | |
| // enqueuing replicas. | |
| var queueAdditionOnSystemConfigUpdateRate = settings.RegisterFloatSetting( | |
| settings.TenantWritable, |
cockroach/pkg/kv/kvserver/store.go
Lines 185 to 187 in 0495342
| var queueAdditionOnSystemConfigUpdateBurst = settings.RegisterIntSetting( | |
| settings.TenantWritable, | |
| "kv.store.system_config_update.queue_add_burst", |
cockroach/pkg/kv/kvserver/store.go
Lines 194 to 196 in 0495342
| var leaseTransferWait = func() *settings.DurationSetting { | |
| s := settings.RegisterDurationSetting( | |
| settings.TenantWritable, |
All kvserver TenantWritable settings
❯ rg -A 1 TenantWritable
replica_write.go
46: settings.TenantWritable,
47- "kv.migration.migrate_application.timeout",
replica_follower_read.go
31: settings.TenantWritable,
32- "kv.closed_timestamp.follower_reads_enabled",
protectedts/settings.go
25: settings.TenantWritable,
26- "kv.protectedts.max_bytes",
--
35: settings.TenantWritable,
36- "kv.protectedts.max_spans",
--
45: settings.TenantWritable,
46- "kv.protectedts.poll_interval",
gc/gc.go
70: settings.TenantWritable,
71- "kv.gc.intent_age_threshold",
--
109: settings.TenantWritable,
110- "kv.gc.intent_cleanup_batch_size",
--
128: settings.TenantWritable,
129- "kv.gc.intent_cleanup_batch_byte_size",
reports/reporter.go
49: settings.TenantWritable,
50- "kv.replication_reports.interval",
kvserverbase/syncing_write.go
68: settings.TenantWritable,
69- "kv.bulk_sst.sync_size",
kvserverbase/base.go
207: settings.TenantWritable,
208- "kv.range_split.by_load_merge_delay",
--
232: settings.TenantWritable,
233- "kv.raft.command.max_size",
raft_transport.go
62: settings.TenantWritable,
63- "kv.raft.command.target_batch_size",
allocator/storepool/store_pool.go
50: settings.TenantWritable,
51- "server.failed_reservation_timeout",
--
62: settings.TenantWritable,
63- timeAfterStoreSuspectSettingName,
--
86: settings.TenantWritable,
87- timeUntilStoreDeadSettingName,
replica_split_load.go
32: settings.TenantWritable,
33- "kv.range_split.by_load_enabled",
--
40: settings.TenantWritable,
41- "kv.range_split.load_qps_threshold",
--
58: settings.TenantWritable,
59- "kv.range_split.load_cpu_threshold",
replica_backpressure.go
31: settings.TenantWritable,
32- "kv.range.backpressure_range_size_multiplier",
--
69: settings.TenantWritable,
70- "kv.range.backpressure_byte_tolerance",
batcheval/cmd_export.go
38: settings.TenantWritable,
39- SSTTargetSizeSetting,
--
56: settings.TenantWritable,
57- MaxExportOverageSetting,
batcheval/cmd_query_resolved_timestamp.go
33: settings.TenantWritable,
34- "kv.query_resolved_timestamp.intent_cleanup_age",
concurrency/concurrency_manager.go
63: settings.TenantWritable,
64- "kv.lock_table.maximum_lock_wait_queue_length",
--
96: settings.TenantWritable,
97- "kv.lock_table.discovered_locks_threshold_for_consulting_finalized_txn_cache",
concurrency/lock_table_waiter.go
42: settings.TenantWritable,
43- "kv.lock_table.coordinator_liveness_push_delay",
--
74: settings.TenantWritable,
75- "kv.lock_table.deadlock_detection_push_delay",
replicastats/replica_stats.go
41: settings.TenantWritable,
42- "kv.replica_stats.addsst_request_size_factor",
replica.go
94: settings.TenantWritable,
95- "kv.gc_ttl.strict_enforcement.enabled",
logstore/logstore.go
41: settings.TenantWritable,
42- "kv.raft_log.disable_synchronization_unsafe",
--
50: settings.TenantWritable,
51- "kv.raft_log.non_blocking_synchronization.enabled",
closedts/setting.go
21: settings.TenantWritable,
22- "kv.closed_timestamp.target_duration",
--
30: settings.TenantWritable,
31- "kv.closed_timestamp.side_transport_interval",
--
43: settings.TenantWritable,
44- "kv.closed_timestamp.lead_for_global_reads_override",
queue.go
56: settings.TenantWritable,
57- "kv.queue.process.guaranteed_time_budget",
store.go
135: settings.TenantWritable,
136- "kv.bulk_io_write.max_rate",
--
143: settings.TenantWritable,
144- "kv.bulk_io_write.concurrent_addsstable_requests",
--
156: settings.TenantWritable,
157- "kv.bulk_io_write.concurrent_addsstable_as_writes_requests",
--
165: settings.TenantWritable,
166- "kv.rangefeed.concurrent_catchup_iterators",
--
175: settings.TenantWritable,
176- "kv.store.system_config_update.queue_add_rate",
--
186: settings.TenantWritable,
187- "kv.store.system_config_update.queue_add_burst",
--
196: settings.TenantWritable,
197- leaseTransferWaitSettingName,
--
224: settings.TenantWritable,
225- "kv.bulk_io_write.concurrent_export_requests",
replica_rangefeed.go
46: settings.TenantWritable,
47- "kv.rangefeed.enabled",
--
55: settings.TenantWritable,
56- "kv.rangefeed.closed_timestamp_refresh_interval",
replica_send.go
41: settings.TenantWritable,
42- "kv.concurrency.optimistic_eval_limited_scans.enabled",
Jira issue: CRDB-25213