mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-29 19:21:01 +00:00
Right now the initial_tablets is kept as replication strategy option in the legacy system_schema.keyspaces table. However, r.s. options are all considered to be replication factors, not anything else. Other than being confusing, this also makes it impossible to extend keyspace configuration with non-integer tablets-related values. This PR moves the initial_tablets into scylla-specific part of the schema. This opens a way to more ~~ugly~~ flexible ways of configuring tablets for keyspace, in particular it should be possible to use boolean on/off switch in CREATE KEYSPACE or some other trick we find appropriate. Mos of what this PR does is extends arguments passed around keyspace_metadata and abstract_replication_strategy. The essence of the change is in last patches * schema_tables: Relax extract_scylla_specific_ks_info() check * locator,schema: Move initial tablets from r.s. options to params refs: #16319 refs: #16364 Closes scylladb/scylladb#16555 * github.com:scylladb/scylladb: test: Add sanity tests for tablets initialization and altering locator,schema: Move initial tablets from r.s. options to params schema_tables: Relax extract_scylla_specific_ks_info() check locator: Keep optional initial_tablets on r.s. params ks_prop_defs: Add initial_tablets& arg to prepare_options() keyspace_metadata: Carry optional<initial_tablets> on board locator: Pass abstract_replication_strategy& into validate_tablet_options() locator: Carry r.s. params into process_tablet_options() locator: Call create_replication_strategy() with r.s. params locator: Wrap replication_strategy_config_options into replication_strategy_params locator: Use local members in ..._replication_strategy constructors