Repository: cassandra
Updated Branches:
  refs/heads/trunk f3d1b45f1 -> 2fcd29b83


Deprecate 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/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/eaf9bf18
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eaf9bf18
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eaf9bf18

Branch: refs/heads/trunk
Commit: eaf9bf18b2ec50713170a9ca472c34586b17a5a3
Parents: 00e5a3d
Author: Aleksey Yeshchenko <alek...@apple.com>
Authored: Mon Apr 16 20:56:18 2018 +0100
Committer: Aleksey Yeshchenko <alek...@apple.com>
Committed: Wed Apr 18 11:26:13 2018 +0100

----------------------------------------------------------------------
 CHANGES.txt                                     |  2 ++
 NEWS.txt                                        |  6 ++++
 .../cql3/statements/TableAttributes.java        | 36 ++++++++++++++++++--
 3 files changed, 42 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/eaf9bf18/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 1aa291f..847f347 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 3.0.17
+ * Deprecate background repair and probablistic read_repair_chance table 
options
+   (CASSANDRA-13910)
  * Fix unbounded validation compactions on repair / revert CASSANDRA-13797 
(CASSANDRA-14332)
  * Avoid deadlock when running nodetool refresh before node is fully up 
(CASSANDRA-14310)
  * Handle all exceptions when opening sstables (CASSANDRA-14202)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/eaf9bf18/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index c06030e..234154e 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -53,6 +53,12 @@ Upgrading
     - Changes to bloom_filter_fp_chance will no longer take effect on existing 
sstables when the node is restarted. Only
       compactions/upgradesstables regenerates bloom filters and Summaries 
sstable components. See CASSANDRA-11163
 
+Deprecation
+-----------
+    - Background read repair has been deprecated. dclocal_read_repair_chance 
and
+      read_repair_chance table options have been deprecated, and will be 
removed entirely in 4.0.
+      See CASSANDRA-13910 for details.
+
 3.0.16
 =====
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/eaf9bf18/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java 
b/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java
index c1a9d54..595fdb3 100644
--- a/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java
+++ b/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java
@@ -27,6 +27,7 @@ import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.exceptions.SyntaxException;
 import org.apache.cassandra.schema.*;
 import org.apache.cassandra.schema.TableParams.Option;
+import org.apache.cassandra.service.ClientWarn;
 
 import static java.lang.String.format;
 
@@ -36,6 +37,8 @@ public final class TableAttributes extends PropertyDefinitions
     private static final Set<String> validKeywords;
     private static final Set<String> obsoleteKeywords;
 
+    private static boolean loggedReadRepairChanceDeprecationWarnings;
+
     static
     {
         ImmutableSet.Builder<String> validBuilder = ImmutableSet.builder();
@@ -105,7 +108,17 @@ public final class TableAttributes extends 
PropertyDefinitions
         }
 
         if (hasOption(Option.DCLOCAL_READ_REPAIR_CHANCE))
-            
builder.dcLocalReadRepairChance(getDouble(Option.DCLOCAL_READ_REPAIR_CHANCE));
+        {
+            double chance = getDouble(Option.DCLOCAL_READ_REPAIR_CHANCE);
+
+            if (chance != 0.0)
+            {
+                ClientWarn.instance.warn("dclocal_read_repair_chance table 
option has been deprecated and will be removed in version 4.0");
+                maybeLogReadRepairChanceDeprecationWarning();
+            }
+
+            builder.dcLocalReadRepairChance(chance);
+        }
 
         if (hasOption(Option.DEFAULT_TIME_TO_LIVE))
             builder.defaultTimeToLive(getInt(Option.DEFAULT_TIME_TO_LIVE));
@@ -123,7 +136,17 @@ public final class TableAttributes extends 
PropertyDefinitions
             builder.minIndexInterval(getInt(Option.MIN_INDEX_INTERVAL));
 
         if (hasOption(Option.READ_REPAIR_CHANCE))
-            builder.readRepairChance(getDouble(Option.READ_REPAIR_CHANCE));
+        {
+            double chance = getDouble(Option.READ_REPAIR_CHANCE);
+
+            if (chance != 0.0)
+            {
+                ClientWarn.instance.warn("read_repair_chance table option has 
been deprecated and will be removed in version 4.0");
+                maybeLogReadRepairChanceDeprecationWarning();
+            }
+
+            builder.readRepairChance(chance);
+        }
 
         if (hasOption(Option.SPECULATIVE_RETRY))
             
builder.speculativeRetry(SpeculativeRetryParam.fromString(getString(Option.SPECULATIVE_RETRY)));
@@ -134,6 +157,15 @@ public final class TableAttributes extends 
PropertyDefinitions
         return builder.build();
     }
 
+    private void maybeLogReadRepairChanceDeprecationWarning()
+    {
+        if (!loggedReadRepairChanceDeprecationWarnings)
+        {
+            logger.warn("dclocal_read_repair_chance and read_repair_chance 
table options have been deprecated and will be removed in version 4.0");
+            loggedReadRepairChanceDeprecationWarnings = true;
+        }
+    }
+
     private Double getDeprecatedCrcCheckChance(Map<String, String> 
compressionOpts)
     {
         String value = 
compressionOpts.get(Option.CRC_CHECK_CHANCE.toString().toLowerCase());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to