warn on invalid replication strategy creation options
patch by dbrosius; reviewed by jbellis for CASSANDRA-4046


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fd66ccf2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fd66ccf2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fd66ccf2

Branch: refs/heads/cassandra-1.1
Commit: fd66ccf21f1331fd2bd07611ad8dd5bf4be5f83b
Parents: 16d4c6c
Author: Jonathan Ellis <jbel...@apache.org>
Authored: Wed May 9 11:28:40 2012 -0500
Committer: Jonathan Ellis <jbel...@apache.org>
Committed: Wed May 9 11:28:40 2012 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    2 ++
 .../locator/AbstractReplicationStrategy.java       |    9 +++++++++
 .../apache/cassandra/locator/LocalStrategy.java    |    1 +
 .../apache/cassandra/locator/SimpleStrategy.java   |    3 +++
 4 files changed, 15 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fd66ccf2/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index baf899f..f17ffd1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 1.1.1-dev
+ * enable caching on index CFs based on data CF cache setting (CASSANDRA-4197)
+ * warn on invalid replication strategy creation options (CASSANDRA-4046)
  * remove [Freeable]Memory finalizers (CASSANDRA-4222)
  * include tombstone size in ColumnFamily.size, which can prevent OOM
    during sudden mass delete operations (CASSANDRA-3741)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fd66ccf2/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java 
b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
index dccc850..288818c 100644
--- a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
+++ b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
@@ -251,4 +251,13 @@ public abstract class AbstractReplicationStrategy
             throw new ConfigurationException("Replication factor must be 
numeric; found " + rf);
         }
     }
+
+    protected void warnOnUnexpectedOptions(Collection<String> expectedOptions)
+    {
+        for (String key : configOptions.keySet())
+        {
+            if (expectedOptions.contains(key))
+                logger.warn("Unrecognized strategy option {" + key + "} passed 
to " + getClass().getSimpleName() + " for keyspace " + table);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fd66ccf2/src/java/org/apache/cassandra/locator/LocalStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/locator/LocalStrategy.java 
b/src/java/org/apache/cassandra/locator/LocalStrategy.java
index f2804da..381d64f 100644
--- a/src/java/org/apache/cassandra/locator/LocalStrategy.java
+++ b/src/java/org/apache/cassandra/locator/LocalStrategy.java
@@ -48,5 +48,6 @@ public class LocalStrategy extends AbstractReplicationStrategy
     public void validateOptions() throws ConfigurationException
     {
         // LocalStrategy doesn't expect any options.
+        warnOnUnexpectedOptions(Arrays.<String>asList());
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fd66ccf2/src/java/org/apache/cassandra/locator/SimpleStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/locator/SimpleStrategy.java 
b/src/java/org/apache/cassandra/locator/SimpleStrategy.java
index 024e9d4..1cffd74 100644
--- a/src/java/org/apache/cassandra/locator/SimpleStrategy.java
+++ b/src/java/org/apache/cassandra/locator/SimpleStrategy.java
@@ -21,6 +21,7 @@ package org.apache.cassandra.locator;
 
 import java.net.InetAddress;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -28,6 +29,7 @@ import java.util.Map;
 import org.apache.cassandra.config.ConfigurationException;
 import org.apache.cassandra.dht.Token;
 
+
 /**
  * This class returns the nodes responsible for a given
  * key but does not respect rack awareness. Basically
@@ -70,6 +72,7 @@ public class SimpleStrategy extends 
AbstractReplicationStrategy
         {
             throw new ConfigurationException("SimpleStrategy requires a 
replication_factor strategy option.");
         }
+        warnOnUnexpectedOptions(Arrays.<String>asList("replication_factor"));
         validateReplicationFactor(configOptions.get("replication_factor"));
     }
 }

Reply via email to