Repository: cassandra-dtest Updated Branches: refs/heads/master 10a6f0592 -> 5afbb7445 (forced update)
Eliminate background repair and probablistic read_repair_chance table options patch by Aleksey Yeschenko; reviewed by Blake Eggleston for CASSANDRA-13910 Project: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/commit/5afbb744 Tree: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/tree/5afbb744 Diff: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/diff/5afbb744 Branch: refs/heads/master Commit: 5afbb7445e434831ab4f5730b0e2e5e4c8bb375a Parents: 2ee611a Author: Aleksey Yeschenko <[email protected]> Authored: Mon Apr 16 15:21:11 2018 +0100 Committer: Aleksey Yeschenko <[email protected]> Committed: Wed Apr 18 11:44:14 2018 +0100 ---------------------------------------------------------------------- consistency_test.py | 34 +++++++++++++++++++++------- nodetool_test.py | 7 +++++- read_repair_test.py | 11 +++++---- repair_tests/incremental_repair_test.py | 5 +++- repair_tests/repair_test.py | 10 ++++++-- schema_metadata_test.py | 4 ---- 6 files changed, 51 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/5afbb744/consistency_test.py ---------------------------------------------------------------------- diff --git a/consistency_test.py b/consistency_test.py index 9a09b01..d6b957a 100644 --- a/consistency_test.py +++ b/consistency_test.py @@ -167,17 +167,20 @@ class TestHelper(Tester): )""" if requires_local_reads: - create_cmd += " WITH " + self.get_local_reads_properties() + create_cmd += " WITH " + self.get_local_reads_properties(self.cluster.version()) session.execute(create_cmd) @staticmethod - def get_local_reads_properties(): + def get_local_reads_properties(cluster_version): """ If we must read from the local replica first, then we should disable read repair and speculative retry, see CASSANDRA-12092 """ - return " dclocal_read_repair_chance = 0 AND read_repair_chance = 0 AND speculative_retry = 'NONE'" + if cluster_version < '4.0': + return " dclocal_read_repair_chance = 0 AND read_repair_chance = 0 AND speculative_retry = 'NONE'" + else: + return " speculative_retry = 'NONE'" def insert_user(self, session, userid, age, consistency, serial_consistency=None): text = "INSERT INTO users (userid, firstname, lastname, age) VALUES ({}, 'first{}', 'last{}', {}) {}"\ @@ -213,7 +216,7 @@ class TestHelper(Tester): )""" if requires_local_reads: - create_cmd += " WITH " + self.get_local_reads_properties() + create_cmd += " WITH " + self.get_local_reads_properties(self.cluster.version()) session.execute(create_cmd) @@ -1239,7 +1242,11 @@ class TestConsistency(Tester): session = self.patient_cql_connection(node1) create_ks(session, 'ks', 3) - create_cf(session, 'cf', read_repair=0.0) + + if cluster.version() < '4.0': + create_cf(session, 'cf', read_repair=0.0) + else: + create_cf(session, 'cf') normal_key = 'normal' reversed_key = 'reversed' @@ -1299,7 +1306,11 @@ class TestConsistency(Tester): session = self.patient_cql_connection(node1) create_ks(session, 'ks', 3) - create_cf(session, 'cf', read_repair=0.0) + if cluster.version() < '4.0': + create_cf(session, 'cf', read_repair=0.0) + else: + create_cf(session, 'cf') + # insert 2 columns in one row insert_columns(self, session, 0, 2) @@ -1336,7 +1347,11 @@ class TestConsistency(Tester): session = self.patient_cql_connection(node1) create_ks(session, 'ks', 3) - session.execute("CREATE TABLE t (id int, v int, PRIMARY KEY(id, v)) WITH read_repair_chance = 0.0") + if cluster.version() < '4.0': + session.execute("CREATE TABLE t (id int, v int, PRIMARY KEY(id, v)) WITH read_repair_chance = 0.0") + else: + session.execute("CREATE TABLE t (id int, v int, PRIMARY KEY(id, v))") + # we write 1 and 2 in a partition: all nodes get it. session.execute(SimpleStatement("INSERT INTO t (id, v) VALUES (0, 1)", consistency_level=ConsistencyLevel.ALL)) session.execute(SimpleStatement("INSERT INTO t (id, v) VALUES (0, 2)", consistency_level=ConsistencyLevel.ALL)) @@ -1373,7 +1388,10 @@ class TestConsistency(Tester): session = self.patient_cql_connection(node1) create_ks(session, 'ks', 2) - create_c1c2_table(self, session, read_repair=1.0) + if cluster.version() < '4.0': + create_c1c2_table(self, session, read_repair=1.0) + else: + create_c1c2_table(self, session) node2.stop(wait_other_notice=True) http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/5afbb744/nodetool_test.py ---------------------------------------------------------------------- diff --git a/nodetool_test.py b/nodetool_test.py index 096e763..457f0bf 100644 --- a/nodetool_test.py +++ b/nodetool_test.py @@ -130,7 +130,12 @@ class TestNodetool(Tester): session = self.patient_exclusive_cql_connection(node_dc1, consistency_level=ConsistencyLevel.ALL) session_dc2 = self.patient_exclusive_cql_connection(node_dc2, consistency_level=ConsistencyLevel.LOCAL_ONE) create_ks(session, 'ks', replication_factor) - session.execute('CREATE TABLE ks.cf (id int PRIMARY KEY, value text) with dclocal_read_repair_chance = 0 AND read_repair_chance = 0;', trace=False) + + if self.cluster.version() < '4.0': + session.execute('CREATE TABLE ks.cf (id int PRIMARY KEY, value text) with dclocal_read_repair_chance = 0 AND read_repair_chance = 0;', trace=False) + else: + session.execute('CREATE TABLE ks.cf (id int PRIMARY KEY, value text);', trace=False) + if with_index: session.execute('CREATE INDEX value_by_key on ks.cf(value)', trace=False) http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/5afbb744/read_repair_test.py ---------------------------------------------------------------------- diff --git a/read_repair_test.py b/read_repair_test.py index 5fbe1ba..b6bfc37 100644 --- a/read_repair_test.py +++ b/read_repair_test.py @@ -68,6 +68,7 @@ class TestReadRepair(Tester): # Check each replica individually again now that we expect the data to be fully repaired self.check_data_on_each_replica(expect_fully_repaired=True, initial_replica=initial_replica) + @since('2.1', max_version='3.11.x') def test_read_repair_chance(self): """ @jira_ticket CASSANDRA-12368 @@ -134,10 +135,12 @@ class TestReadRepair(Tester): # Disable speculative retry and [dclocal]read_repair in initial setup. session.execute("""CREATE KEYSPACE alter_rf_test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};""") - session.execute("""CREATE TABLE alter_rf_test.t1 (k int PRIMARY KEY, a int, b int) - WITH speculative_retry='NONE' - AND read_repair_chance=0 - AND dclocal_read_repair_chance=0;""") + + options = "speculative_retry='NONE'"; + if self.cluster.version() < '4.0': + options = options + " AND read_repair_chance=0 AND dclocal_read_repair_chance=0" + session.execute("CREATE TABLE alter_rf_test.t1 (k int PRIMARY KEY, a int, b int) WITH " + options) + session.execute("INSERT INTO alter_rf_test.t1 (k, a, b) VALUES (1, 1, 1);") # identify the initial replica and trigger a flush to ensure reads come from sstables http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/5afbb744/repair_tests/incremental_repair_test.py ---------------------------------------------------------------------- diff --git a/repair_tests/incremental_repair_test.py b/repair_tests/incremental_repair_test.py index e913a7c..a4fa5a9 100644 --- a/repair_tests/incremental_repair_test.py +++ b/repair_tests/incremental_repair_test.py @@ -386,7 +386,10 @@ class TestIncRepair(Tester): session = self.patient_cql_connection(node1) create_ks(session, 'ks', 3) - create_cf(session, 'cf', read_repair=0.0, columns={'c1': 'text', 'c2': 'text'}) + if cluster.version() < '4.0': + create_cf(session, 'cf', read_repair=0.0, columns={'c1': 'text', 'c2': 'text'}) + else: + create_cf(session, 'cf', columns={'c1': 'text', 'c2': 'text'}) logger.debug("insert data") http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/5afbb744/repair_tests/repair_test.py ---------------------------------------------------------------------- diff --git a/repair_tests/repair_test.py b/repair_tests/repair_test.py index 66189cf..3459106 100644 --- a/repair_tests/repair_test.py +++ b/repair_tests/repair_test.py @@ -100,7 +100,10 @@ class BaseRepairTest(Tester): session = self.patient_cql_connection(node1, retry_policy=FlakyRetryPolicy(max_retries=15)) create_ks(session, 'ks', 3) - create_cf(session, 'cf', read_repair=0.0, columns={'c1': 'text', 'c2': 'text'}) + if cluster.version() < '4.0': + create_cf(session, 'cf', read_repair=0.0, columns={'c1': 'text', 'c2': 'text'}) + else: + create_cf(session, 'cf', columns={'c1': 'text', 'c2': 'text'}) # Insert 1000 keys, kill node 3, insert 1 key, restart node 3, insert 1000 more keys logger.debug("Inserting data...") @@ -711,7 +714,10 @@ class TestRepair(BaseRepairTest): session = self.patient_cql_connection(node1) session.execute("CREATE KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': 2, 'dc2': 1, 'dc3':1}") session.execute("USE ks") - create_cf(session, 'cf', read_repair=0.0, columns={'c1': 'text', 'c2': 'text'}) + if cluster.version() < '4.0': + create_cf(session, 'cf', read_repair=0.0, columns={'c1': 'text', 'c2': 'text'}) + else: + create_cf(session, 'cf', columns={'c1': 'text', 'c2': 'text'}) # Insert 1000 keys, kill node 2, insert 1 key, restart node 2, insert 1000 more keys logger.debug("Inserting data...") http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/5afbb744/schema_metadata_test.py ---------------------------------------------------------------------- diff --git a/schema_metadata_test.py b/schema_metadata_test.py index d8d727b..e6cfb38 100644 --- a/schema_metadata_test.py +++ b/schema_metadata_test.py @@ -181,9 +181,7 @@ def establish_nondefault_table_settings(version, session, table_name_prefix=""): primary key((a,b),c) ) WITH gc_grace_seconds = 9999 AND bloom_filter_fp_chance = 0.5 - AND read_repair_chance = 0.99 AND comment = 'insightful information' - AND dclocal_read_repair_chance = 0.88 AND compaction = {{'class': 'LeveledCompactionStrategy'}} """ @@ -216,9 +214,7 @@ def verify_nondefault_table_settings(created_on_version, current_version, keyspa meta = session.cluster.metadata.keyspaces[keyspace].tables[table_name] assert 'insightful information' == meta.options['comment'] - assert 0.88 == meta.options['dclocal_read_repair_chance'] assert 9999 == meta.options['gc_grace_seconds'] - assert 0.99 == meta.options['read_repair_chance'] assert 0.5 == meta.options['bloom_filter_fp_chance'] if created_on_version >= '2.1': --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
