Skip to content

Commit

Permalink
feature(views-with-tablets): enable testing materialized views with t…
Browse files Browse the repository at this point in the history
…ablets

Materialized views are currently not allowed in tablet keyspaces, due to some
pending issues. However, they can be enabled using the "views-with-tablets" experimental feature.

While improving views with tablets, we should make sure that the existing tests keep passing,
so we should run materialized view (and index) tests with tablets using the experimental feature.

The feature doesn't affect tests ran on vnodes. For tablets, the tests would fail without the feature
due to unsupported configuration.

Considering that, we should enable the feature by default for all tests (with a special consideration
to upgrade tests).

The change includes:
* modifying the default experimental_features in defaults/test_default.yaml
* updating upgrade tests - for upgrades, the first version with this experimental feature will
be 2025.1, so the upgrade tests are updated to remove this feature from the defaults and to set
it when upgrading to 2025.1 or higher. When testing upgrades to future versions, we'll need to
keep the experimental_feature also for base version, with an exception for sequential upgrades,
(currently we only have 2021.1->2022.1->2023.1 test in test_custom_profile_sequential_rolling_upgrade)
where the base version of the sequence might not have this experimental feature, so we'll need
to adjust it accordingly.
  • Loading branch information
wmitros committed Dec 24, 2024
1 parent bc3552a commit 2d59969
Show file tree
Hide file tree
Showing 9 changed files with 18 additions and 1 deletion.
2 changes: 2 additions & 0 deletions defaults/test_default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ skip_download: false
authenticator_user: ''
authenticator_password: ''

experimental_features: ['views-with-tablets']

# gemini defaults
n_test_oracle_db_nodes: 1
gemini_seed: 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ append_scylla_args: '--blocked-reactor-notify-ms 5 --abort-on-lsa-bad-alloc 1 --
backtrace_decoding: false
print_kernel_callstack: true

experimental_features: []

store_perf_results: true
email_recipients: ["[email protected]"]
use_prepared_loaders: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ append_scylla_args: '--blocked-reactor-notify-ms 500 --abort-on-lsa-bad-alloc 1

use_mgmt: false

experimental_features: []

use_prepared_loaders: true

append_scylla_yaml:
Expand Down
2 changes: 2 additions & 0 deletions test-cases/upgrades/generic-rolling-upgrade.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ internode_compression: 'all'

use_mgmt: false

experimental_features: []

use_preinstalled_scylla: false

# those are needed to be give by the job, via environment variable
Expand Down
2 changes: 2 additions & 0 deletions test-cases/upgrades/multi-dc-rolling-upgrade.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ authenticator_password: 'cassandra'

internode_compression: 'all'

experimental_features: []

use_mgmt: false

# those are needed to be give by the job, via environment variable
Expand Down
2 changes: 2 additions & 0 deletions test-cases/upgrades/rolling-upgrade-latency-regression.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ nemesis_class_name: 'NoOpMonkey'
nemesis_during_prepare: false
use_mgmt: false

experimental_features: []

user_prefix: 'rolling-upgrade-ltncy-rgrssn'

server_encrypt: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ authenticator_password: 'cassandra'

use_mgmt: false

experimental_features: []

gemini_cmd: "gemini -d --duration 2h \
-c 10 -m write -f --non-interactive --cql-features normal \
--max-mutation-retries 5 --max-mutation-retries-backoff 500ms \
Expand Down
2 changes: 2 additions & 0 deletions unit_tests/test_scylla_yaml.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ def test_scylla_yaml(self):
parameters=[{'seeds': ['1.1.1.1', '2.2.2.2']}]),
],
'force_schema_commit_log': True,
'experimental_features': None,
},
expected_without_defaults={
'background_writer_scheduling_quota': 1.0,
Expand All @@ -151,6 +152,7 @@ def test_scylla_yaml(self):
'prometheus_prefix': 'someprefix',
'log_to_stdout': True,
'force_schema_commit_log': True,
'experimental_features': None,
},
expected_with_defaults={
'abort_on_ebadf': None,
Expand Down
3 changes: 2 additions & 1 deletion upgrade_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,8 @@ def _upgrade_node(self, node, upgrade_sstables=True, new_scylla_repo=None, new_v

if self.params.get("enable_tablets_on_upgrade"):
scylla_yaml_updates.update({"enable_tablets": True})

if ComparableScyllaVersion(new_version) >= "2025.1.0~rc0":
scylla_yaml_updates.update({"experimental_features": ["views-with-tablets"]})
if self.params.get('test_sst3'):
scylla_yaml_updates.update({"enable_sstables_mc_format": True})

Expand Down

0 comments on commit 2d59969

Please sign in to comment.