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]

Reply via email to