Skip to content

Commit

Permalink
db: config: introduce unused disable-consistent-topology-changes
Browse files Browse the repository at this point in the history
We are going to remove the `consistent-topology-changes` experimental
feature in 6.0. However, the topology upgrade procedure will be
manual and voluntary, so some 6.0 clusters will be using the
gossip-based topology. Therefore, we need to continue testing the
gossip-based topology. The solution is introducing a new flag,
`disable-consistent-topology-changes`, that will enforce the
gossip-based topology in a fresh cluster.

In this patch, we only introduce the parameter without any effect.
Here is the explanation. Removing `consistent-topology-changes`
and introducing `disable-consistent-topology-changes` requires
adjustments in scylla-dtest. We want to merge changes to scylladb
and scylla-dtest in a way that ensures all tests are run correctly
during the whole process. If we merged all changes to scylladb first,
before merging the scylla-dtest changes, all tests would run with
the raft-based topology and the ones excluded in the raft-based
topology would fail. We also can't merge all changes to scylla-dtest
first. However, we can follow this plan:
1. scylladb: merge this patch
2. scylla-dtest: start using `disable-consistent-topology-changes`
   in jobs that run without the raft-based topology
3. scylladb: merge the rest of the changes
4. scylla-dtest: merge the rest of the changes

Ref scylladb#17802
  • Loading branch information
patjed41 committed Apr 17, 2024
1 parent e431e7d commit 0edc725
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 0 deletions.
1 change: 1 addition & 0 deletions db/config.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1120,6 +1120,7 @@ db::config::config(std::shared_ptr<db::extensions> exts)
, index_cache_fraction(this, "index_cache_fraction", liveness::LiveUpdate, value_status::Used, 0.2,
"The maximum fraction of cache memory permitted for use by index cache. Clamped to the [0.0; 1.0] range. Must be small enough to not deprive the row cache of memory, but should be big enough to fit a large fraction of the index. The default value 0.2 means that at least 80\% of cache memory is reserved for the row cache, while at most 20\% is usable by the index cache.")
, consistent_cluster_management(this, "consistent_cluster_management", value_status::Deprecated, true, "Use RAFT for cluster management and DDL.")
, disable_consistent_topology_changes(this, "disable_consistent_topology_changes", value_status::Used, false, "Use legacy topology operations in a fresh cluster. Only the first node in the cluster must use it. The rest will fall back to legacy operations anyway. This option should be used only for testing.")
, wasm_cache_memory_fraction(this, "wasm_cache_memory_fraction", value_status::Used, 0.01, "Maximum total size of all WASM instances stored in the cache as fraction of total shard memory.")
, wasm_cache_timeout_in_ms(this, "wasm_cache_timeout_in_ms", value_status::Used, 5000, "Time after which an instance is evicted from the cache.")
, wasm_cache_instance_size_limit(this, "wasm_cache_instance_size_limit", value_status::Used, 1024*1024, "Instances with size above this limit will not be stored in the cache.")
Expand Down
1 change: 1 addition & 0 deletions db/config.hh
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,7 @@ public:
named_value<double> index_cache_fraction;

named_value<bool> consistent_cluster_management;
named_value<bool> disable_consistent_topology_changes;

named_value<double> wasm_cache_memory_fraction;
named_value<uint32_t> wasm_cache_timeout_in_ms;
Expand Down

0 comments on commit 0edc725

Please sign in to comment.