Author: xedin
Date: Fri Oct 14 21:35:54 2011
New Revision: 1183510

URL: http://svn.apache.org/viewvc?rev=1183510&view=rev
Log:
ColumnFamily min_compaction_threshold should be >= 2
patch by Pavel Yaskevich; reviewed by Brandon Williams for CASSANDRA-3342

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1183510&r1=1183509&r2=1183510&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Oct 14 21:35:54 2011
@@ -14,7 +14,7 @@
    (CASSANDRA-3214)
  * (Hadoop) accept comma delimited lists of initial thrift connections
    (CASSANDRA-3185)
-
+ * ColumnFamily min_compaction_threshold should be >= 2 (CASSANDRA-3342)
 
 0.8.7
  * Kill server on wrapped OOME such as from FileChannel.map (CASSANDRA-3201)

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1183510&r1=1183509&r2=1183510&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java
 Fri Oct 14 21:35:54 2011
@@ -679,19 +679,11 @@ public class ThriftValidation
     {
         if (cf_def.isSetMin_compaction_threshold() && 
cf_def.isSetMax_compaction_threshold())
         {
-            if ((cf_def.min_compaction_threshold > 
cf_def.max_compaction_threshold)
-                && cf_def.max_compaction_threshold != 0)
-            {
-                throw new ConfigurationException("min_compaction_threshold 
cannot be greater than max_compaction_threshold");
-            }
+            validateMinCompactionThreshold(cf_def.min_compaction_threshold, 
cf_def.max_compaction_threshold);
         }
         else if (cf_def.isSetMin_compaction_threshold())
         {
-            if (cf_def.min_compaction_threshold > 
CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD)
-            {
-                throw new 
ConfigurationException(String.format("min_compaction_threshold cannot be 
greather than max_compaction_threshold (default %d)",
-                                                               
CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD));
-            }
+            validateMinCompactionThreshold(cf_def.min_compaction_threshold, 
CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD);
         }
         else if (cf_def.isSetMax_compaction_threshold())
         {
@@ -706,6 +698,16 @@ public class ThriftValidation
         }
     }
 
+    public static void validateMinCompactionThreshold(int 
min_compaction_threshold, int max_compaction_threshold) throws 
ConfigurationException
+    {
+        if (min_compaction_threshold <= 1)
+            throw new ConfigurationException("min_compaction_threshold cannot 
be less than 2.");
+
+        if (min_compaction_threshold > max_compaction_threshold && 
max_compaction_threshold != 0)
+            throw new 
ConfigurationException(String.format("min_compaction_threshold cannot be 
greater than max_compaction_threshold %d",
+                                                            
max_compaction_threshold));
+    }
+
     public static void 
validateMemtableSettings(org.apache.cassandra.thrift.CfDef cf_def) throws 
ConfigurationException
     {
         if (cf_def.isSetMemtable_flush_after_mins())


Reply via email to