diff --git a/db/config.cc b/db/config.cc index e8f54a9cabee..4c818c17f8d6 100644 --- a/db/config.cc +++ b/db/config.cc @@ -855,7 +855,7 @@ db::config::config(std::shared_ptr exts) , developer_mode(this, "developer_mode", value_status::Used, DEVELOPER_MODE_DEFAULT, "Relax environment checks. Setting to true can reduce performance and reliability significantly.") , skip_wait_for_gossip_to_settle(this, "skip_wait_for_gossip_to_settle", value_status::Used, -1, "An integer to configure the wait for gossip to settle. -1: wait normally, 0: do not wait at all, n: wait for at most n polls. Same as -Dcassandra.skip_wait_for_gossip_to_settle in cassandra.") , force_gossip_generation(this, "force_gossip_generation", liveness::LiveUpdate, value_status::Used, -1 , "Force gossip to use the generation number provided by user") - , experimental(this, "experimental", value_status::Used, false, "[Deprecated] Set to true to unlock all experimental features (except 'raft' feature, which should be enabled explicitly via 'experimental-features' option). Please use 'experimental-features', instead.") + , experimental(this, "experimental", value_status::Used, false, "[Deprecated] Set to true to unlock all experimental features (except 'consistent-topology-changes' feature, which should be enabled explicitly via 'experimental-features' option). Please use 'experimental-features', instead.") , experimental_features(this, "experimental_features", value_status::Used, {}, experimental_features_help_string()) , lsa_reclamation_step(this, "lsa_reclamation_step", value_status::Used, 1, "Minimum number of segments to reclaim in a single step") , prometheus_port(this, "prometheus_port", value_status::Used, 9180, "Prometheus port, set to zero to disable") @@ -1140,7 +1140,7 @@ db::fs::path db::config::get_conf_sub(db::fs::path sub) { bool db::config::check_experimental(experimental_features_t::feature f) const { if (experimental() && f != experimental_features_t::feature::UNUSED - && f != experimental_features_t::feature::RAFT + && f != experimental_features_t::feature::CONSISTENT_TOPOLOGY_CHANGES && f != experimental_features_t::feature::BROADCAST_TABLES && f != experimental_features_t::feature::TABLETS) { return true; @@ -1185,7 +1185,7 @@ std::map db::experimental_feature {"cdc", feature::UNUSED}, {"alternator-streams", feature::ALTERNATOR_STREAMS}, {"alternator-ttl", feature::UNUSED }, - {"raft", feature::RAFT}, + {"consistent-topology-changes", feature::CONSISTENT_TOPOLOGY_CHANGES}, {"broadcast-tables", feature::BROADCAST_TABLES}, {"keyspace-storage-options", feature::KEYSPACE_STORAGE_OPTIONS}, {"tablets", feature::TABLETS}, diff --git a/db/config.hh b/db/config.hh index 8bfcf1fc3afd..d8d6bb285e84 100644 --- a/db/config.hh +++ b/db/config.hh @@ -97,14 +97,13 @@ namespace db { /// Enumeration of all valid values for the `experimental` config entry. struct experimental_features_t { - // NOTE: RAFT and BROADCAST_TABLES features are not enabled via `experimental` umbrella flag. + // NOTE: CONSISTENT_TOPOLOGY_CHANGES and BROADCAST_TABLES features are not enabled via `experimental` umbrella flag. // These options should be enabled explicitly. - // RAFT feature has to be enabled if BROADCAST_TABLES or TABLETS is enabled. enum class feature { UNUSED, UDF, ALTERNATOR_STREAMS, - RAFT, + CONSISTENT_TOPOLOGY_CHANGES, BROADCAST_TABLES, KEYSPACE_STORAGE_OPTIONS, TABLETS, diff --git a/db/system_keyspace.cc b/db/system_keyspace.cc index 6feabe01fcc1..5e8f2ee1a033 100644 --- a/db/system_keyspace.cc +++ b/db/system_keyspace.cc @@ -2900,7 +2900,7 @@ std::vector system_keyspace::all_tables(const db::config& cfg) { if (cfg.consistent_cluster_management()) { r.insert(r.end(), {raft(), raft_snapshots(), raft_snapshot_config(), group0_history(), discovery()}); - if (cfg.check_experimental(db::experimental_features_t::feature::RAFT)) { + if (cfg.check_experimental(db::experimental_features_t::feature::CONSISTENT_TOPOLOGY_CHANGES)) { r.insert(r.end(), {topology(), cdc_generations_v3()}); } diff --git a/service/storage_service.cc b/service/storage_service.cc index 6018a7d49ff2..ca393bf37a41 100644 --- a/service/storage_service.cc +++ b/service/storage_service.cc @@ -2962,7 +2962,7 @@ future<> storage_service::uninit_messaging_service_part() { void storage_service::set_group0(raft_group0& group0) { _group0 = &group0; - _raft_topology_change_enabled = _group0->is_raft_enabled() && _db.local().get_config().check_experimental(db::experimental_features_t::feature::RAFT); + _raft_topology_change_enabled = _group0->is_raft_enabled() && _db.local().get_config().check_experimental(db::experimental_features_t::feature::CONSISTENT_TOPOLOGY_CHANGES); } future<> storage_service::join_cluster(cdc::generation_service& cdc_gen_service, diff --git a/test/boost/config_test.cc b/test/boost/config_test.cc index 447d6509bfe6..d88a46312c7a 100644 --- a/test/boost/config_test.cc +++ b/test/boost/config_test.cc @@ -922,7 +922,7 @@ SEASTAR_TEST_CASE(test_parse_experimental_features_cdc) { BOOST_CHECK(cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(!cfg.check_experimental(ef::UDF)); BOOST_CHECK(!cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(!cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(!cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(!cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); } @@ -935,7 +935,7 @@ SEASTAR_TEST_CASE(test_parse_experimental_features_unused) { BOOST_CHECK(cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(!cfg.check_experimental(ef::UDF)); BOOST_CHECK(!cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(!cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(!cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(!cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); } @@ -948,7 +948,7 @@ SEASTAR_TEST_CASE(test_parse_experimental_features_udf) { BOOST_CHECK(!cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(cfg.check_experimental(ef::UDF)); BOOST_CHECK(!cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(!cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(!cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(!cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); } @@ -961,20 +961,20 @@ SEASTAR_TEST_CASE(test_parse_experimental_features_alternator_streams) { BOOST_CHECK(!cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(!cfg.check_experimental(ef::UDF)); BOOST_CHECK(cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(!cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(!cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(!cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); } -SEASTAR_TEST_CASE(test_parse_experimental_features_raft) { +SEASTAR_TEST_CASE(test_parse_experimental_features_consistent_topology_changes) { auto cfg_ptr = std::make_unique(); config& cfg = *cfg_ptr; - cfg.read_from_yaml("experimental_features:\n - raft\n", throw_on_error); - BOOST_CHECK_EQUAL(cfg.experimental_features(), features{ef::RAFT}); + cfg.read_from_yaml("experimental_features:\n - consistent-topology-changes\n", throw_on_error); + BOOST_CHECK_EQUAL(cfg.experimental_features(), features{ef::CONSISTENT_TOPOLOGY_CHANGES}); BOOST_CHECK(!cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(!cfg.check_experimental(ef::UDF)); BOOST_CHECK(!cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(!cfg.check_experimental(ef::BROADCAST_TABLES)); BOOST_CHECK(!cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); @@ -988,7 +988,7 @@ SEASTAR_TEST_CASE(test_parse_experimental_features_broadcast_tables) { BOOST_CHECK(!cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(!cfg.check_experimental(ef::UDF)); BOOST_CHECK(!cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(!cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(!cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(cfg.check_experimental(ef::BROADCAST_TABLES)); BOOST_CHECK(!cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); @@ -1002,7 +1002,7 @@ SEASTAR_TEST_CASE(test_parse_experimental_features_keyspace_storage_options) { BOOST_CHECK(!cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(!cfg.check_experimental(ef::UDF)); BOOST_CHECK(!cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(!cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(!cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); } @@ -1042,7 +1042,7 @@ SEASTAR_TEST_CASE(test_parse_experimental_true) { BOOST_CHECK(!cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(cfg.check_experimental(ef::UDF)); BOOST_CHECK(cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(!cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(!cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); } @@ -1054,7 +1054,7 @@ SEASTAR_TEST_CASE(test_parse_experimental_false) { BOOST_CHECK(!cfg.check_experimental(ef::UNUSED)); BOOST_CHECK(!cfg.check_experimental(ef::UDF)); BOOST_CHECK(!cfg.check_experimental(ef::ALTERNATOR_STREAMS)); - BOOST_CHECK(!cfg.check_experimental(ef::RAFT)); + BOOST_CHECK(!cfg.check_experimental(ef::CONSISTENT_TOPOLOGY_CHANGES)); BOOST_CHECK(!cfg.check_experimental(ef::KEYSPACE_STORAGE_OPTIONS)); return make_ready_future(); } diff --git a/test/perf/perf_tablets.cc b/test/perf/perf_tablets.cc index 19bdd2d5b13e..92dda1ac6903 100644 --- a/test/perf/perf_tablets.cc +++ b/test/perf/perf_tablets.cc @@ -36,7 +36,7 @@ cql_test_config tablet_cql_test_config() { cql_test_config c; c.db_config->experimental_features({ db::experimental_features_t::feature::TABLETS, - db::experimental_features_t::feature::RAFT + db::experimental_features_t::feature::CONSISTENT_TOPOLOGY_CHANGES }, db::config::config_source::CommandLine); return c; } diff --git a/test/pylib/scylla_cluster.py b/test/pylib/scylla_cluster.py index 8ec18cde1b2b..86752bdb6fca 100644 --- a/test/pylib/scylla_cluster.py +++ b/test/pylib/scylla_cluster.py @@ -71,7 +71,7 @@ def make_scylla_conf(workdir: pathlib.Path, host_addr: str, seed_addrs: List[str # to add here specific experimental features as they are introduced. 'enable_user_defined_functions': True, 'experimental': True, - 'experimental_features': ['udf', 'raft'], + 'experimental_features': ['udf', 'consistent-topology-changes'], 'consistent_cluster_management': True, diff --git a/test/topology_experimental_raft/suite.yaml b/test/topology_experimental_raft/suite.yaml index a7377b4d8fcf..6c79c6622035 100644 --- a/test/topology_experimental_raft/suite.yaml +++ b/test/topology_experimental_raft/suite.yaml @@ -5,6 +5,6 @@ cluster: extra_scylla_config_options: authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer - experimental_features: ['raft', 'tablets'] + experimental_features: ['consistent-topology-changes', 'tablets'] skip_in_release: - test_blocked_bootstrap