From 3da797684357305a990b24cf81d145947470980f Mon Sep 17 00:00:00 2001 From: Roy Dahan Date: Wed, 5 Feb 2025 19:14:10 +0200 Subject: [PATCH 1/2] test(longevity vnodes and tablets): Add test for a cluster with both vnodes and tablets Adding a new longevity test to test a cluster with 2 keyspaces, one with tablets and one with vnodes. This is a 48h longevity with topology changes nemesis. --- ...ablets-vnodes-topology-changes.jenkinsfile | 12 +++++ ...mixed-tablets-vnodes-topology-changes.yaml | 50 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 jenkins-pipelines/oss/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.jenkinsfile create mode 100644 test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml diff --git a/jenkins-pipelines/oss/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.jenkinsfile b/jenkins-pipelines/oss/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.jenkinsfile new file mode 100644 index 0000000000..bbc8526d8c --- /dev/null +++ b/jenkins-pipelines/oss/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.jenkinsfile @@ -0,0 +1,12 @@ +#!groovy + +// trick from https://github.com/jenkinsci/workflow-cps-global-lib-plugin/pull/43 +def lib = library identifier: 'sct@snapshot', retriever: legacySCM(scm) + +longevityPipeline( + backend: 'aws', + region: 'eu-west-1', + test_name: 'longevity_test.LongevityTest.test_custom_time', + test_config: 'test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml' + +) diff --git a/test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml b/test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml new file mode 100644 index 0000000000..dfd56d605d --- /dev/null +++ b/test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml @@ -0,0 +1,50 @@ +test_duration: 3100 + +# Explictily create 2 keyspaces, one with tablets enabled and one with tablets disabled +pre_create_keyspace: [ + "CREATE KEYSPACE keyspace1 WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'replication_factor': 3 } AND tablets = {'enabled': true};", + "CREATE KEYSPACE keyspace2 WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'replication_factor': 3 } AND tablets = {'enabled': false};" +] + +# write 500 GB of data to each of the keyspaces +prepare_write_cmd: + - "cassandra-stress write cl=ALL n=524288000 -schema 'keyspace=keyspace1 replication(strategy=NetworkTopologyStrategy,replication_factor=3)' -mode cql3 native -rate threads=1000 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..524288000 -log interval=15" + - "cassandra-stress write cl=ALL n=524288000 -schema 'keyspace=keyspace2 replication(strategy=NetworkTopologyStrategy,replication_factor=3)' -mode cql3 native -rate threads=1000 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..524288000 -log interval=15" + +# run mixed workload on both keyspaces for 40 hours +# run write workload that adds 300 GB of data to each of the keyspaces +stress_cmd: + - "cassandra-stress mixed cl=QUORUM duration=40h -schema 'keyspace=keyspace1' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..524288000 -log interval=15" + - "cassandra-stress mixed cl=QUORUM duration=40h -schema 'keyspace=keyspace2' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..524288000 -log interval=15" + - "cassandra-stress write cl=QUORUM duration=40h -schema 'keyspace=keyspace1' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=524288001..838860800 -log interval=15" + - "cassandra-stress write cl=QUORUM duration=40h -schema 'keyspace=keyspace2' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=524288001..838860800 -log interval=15" + +run_fullscan: + - '{"mode": "table_and_aggregate", "ks_cf": "random", "interval": 60}' + +n_db_nodes: 4 +instance_type_db: 'i4i.4xlarge' + +n_loaders: 2 +instance_type_loader: 'c7i.2xlarge' +round_robin: true + +n_monitor_nodes: 1 +instance_type_monitor: 'm6i.xlarge' + +nemesis_class_name: 'SisyphusMonkey' +nemesis_selector: ["topology_changes"] +nemesis_seed: '003' +nemesis_interval: 5 +nemesis_during_prepare: false + +user_prefix: 'longevity-1tb-mixed-tablets-vnodes-topology-changes' + +server_encrypt: true +client_encrypt: true +authenticator: 'PasswordAuthenticator' +authenticator_user: cassandra +authenticator_password: cassandra +authorizer: 'CassandraAuthorizer' + +use_preinstalled_scylla: true From e1764a670b0db8c034007f826b0eeecc546ce01c Mon Sep 17 00:00:00 2001 From: Roy Dahan Date: Thu, 13 Feb 2025 15:42:20 +0100 Subject: [PATCH 2/2] decreasing amount of data to test faster --- ...tb-48h-mixed-tablets-vnodes-topology-changes.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml b/test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml index dfd56d605d..3d7726c48a 100644 --- a/test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml +++ b/test-cases/longevity/longevity-1tb-48h-mixed-tablets-vnodes-topology-changes.yaml @@ -8,16 +8,16 @@ pre_create_keyspace: [ # write 500 GB of data to each of the keyspaces prepare_write_cmd: - - "cassandra-stress write cl=ALL n=524288000 -schema 'keyspace=keyspace1 replication(strategy=NetworkTopologyStrategy,replication_factor=3)' -mode cql3 native -rate threads=1000 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..524288000 -log interval=15" - - "cassandra-stress write cl=ALL n=524288000 -schema 'keyspace=keyspace2 replication(strategy=NetworkTopologyStrategy,replication_factor=3)' -mode cql3 native -rate threads=1000 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..524288000 -log interval=15" + - "cassandra-stress write cl=ALL n=262144000 -schema 'keyspace=keyspace1 replication(strategy=NetworkTopologyStrategy,replication_factor=3)' -mode cql3 native -rate threads=1000 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..262144000 -log interval=15" + - "cassandra-stress write cl=ALL n=262144000 -schema 'keyspace=keyspace2 replication(strategy=NetworkTopologyStrategy,replication_factor=3)' -mode cql3 native -rate threads=1000 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..262144000 -log interval=15" # run mixed workload on both keyspaces for 40 hours # run write workload that adds 300 GB of data to each of the keyspaces stress_cmd: - - "cassandra-stress mixed cl=QUORUM duration=40h -schema 'keyspace=keyspace1' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..524288000 -log interval=15" - - "cassandra-stress mixed cl=QUORUM duration=40h -schema 'keyspace=keyspace2' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..524288000 -log interval=15" - - "cassandra-stress write cl=QUORUM duration=40h -schema 'keyspace=keyspace1' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=524288001..838860800 -log interval=15" - - "cassandra-stress write cl=QUORUM duration=40h -schema 'keyspace=keyspace2' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=524288001..838860800 -log interval=15" + - "cassandra-stress mixed cl=QUORUM duration=40h -schema 'keyspace=keyspace1' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..262144000 -log interval=15" + - "cassandra-stress mixed cl=QUORUM duration=40h -schema 'keyspace=keyspace2' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=1..262144000 -log interval=15" + - "cassandra-stress write cl=QUORUM duration=40h -schema 'keyspace=keyspace1' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=262144001..524288000 -log interval=15" + - "cassandra-stress write cl=QUORUM duration=40h -schema 'keyspace=keyspace2' -mode cql3 native -rate threads=100 -col 'size=FIXED(1024) n=FIXED(1)' -pop seq=262144001..524288000 -log interval=15" run_fullscan: - '{"mode": "table_and_aggregate", "ks_cf": "random", "interval": 60}'