You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2013/06/18 04:39:20 UTC

git commit: Make index_interval visible to CQL3 patch by yukim; reviewed by jbellis for CASSANDRA-5650

Updated Branches:
  refs/heads/trunk 670954cb3 -> 2b86c9a4f


Make index_interval visible to CQL3 patch by yukim; reviewed by jbellis
for CASSANDRA-5650


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

Branch: refs/heads/trunk
Commit: 2b86c9a4fd76254ca74e872e85c1ada4ebe981bc
Parents: 670954c
Author: Yuki Morishita <yu...@apache.org>
Authored: Mon Jun 17 21:38:39 2013 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Mon Jun 17 21:38:39 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  2 +-
 .../org/apache/cassandra/config/CFMetaData.java |  1 +
 .../org/apache/cassandra/cql3/CFPropDefs.java   | 24 ++++++++++++--------
 3 files changed, 16 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2b86c9a4/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 76e710e..186c2d1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -21,7 +21,7 @@
  * Move sstable level information into the Stats component, removing the
    need for a separate Manifest file (CASSANDRA-4872)
  * avoid serializing to byte[] on commitlog append (CASSANDRA-5199)
- * make index_interval configurable per columnfamily (CASSANDRA-3961)
+ * make index_interval configurable per columnfamily (CASSANDRA-3961, CASSANDRA-5650)
  * add default_time_to_live (CASSANDRA-3974)
  * add memtable_flush_period_in_ms (CASSANDRA-4237)
  * replace supercolumns internally by composites (CASSANDRA-3237, 5123)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2b86c9a4/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index cfe1090..b5ece0c 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -140,6 +140,7 @@ public final class CFMetaData
                                                                        + "default_write_consistency text,"
                                                                        + "speculative_retry text,"
                                                                        + "populate_io_cache_on_flush boolean,"
+                                                                       + "index_interval int,"
                                                                        + "dropped_columns map<text, bigint>,"
                                                                        + "PRIMARY KEY (keyspace_name, columnfamily_name)"
                                                                        + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=8640");

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2b86c9a4/src/java/org/apache/cassandra/cql3/CFPropDefs.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/CFPropDefs.java b/src/java/org/apache/cassandra/cql3/CFPropDefs.java
index 3167c9e..30589a8 100644
--- a/src/java/org/apache/cassandra/cql3/CFPropDefs.java
+++ b/src/java/org/apache/cassandra/cql3/CFPropDefs.java
@@ -41,6 +41,7 @@ public class CFPropDefs extends PropertyDefinitions
     public static final String KW_REPLICATEONWRITE = "replicate_on_write";
     public static final String KW_CACHING = "caching";
     public static final String KW_DEFAULT_TIME_TO_LIVE = "default_time_to_live";
+    public static final String KW_INDEX_INTERVAL = "index_interval";
     public static final String KW_SPECULATIVE_RETRY = "speculative_retry";
     public static final String KW_POPULATE_IO_CACHE_ON_FLUSH = "populate_io_cache_on_flush";
     public static final String KW_BF_FP_CHANCE = "bloom_filter_fp_chance";
@@ -64,6 +65,7 @@ public class CFPropDefs extends PropertyDefinitions
         keywords.add(KW_REPLICATEONWRITE);
         keywords.add(KW_CACHING);
         keywords.add(KW_DEFAULT_TIME_TO_LIVE);
+        keywords.add(KW_INDEX_INTERVAL);
         keywords.add(KW_SPECULATIVE_RETRY);
         keywords.add(KW_POPULATE_IO_CACHE_ON_FLUSH);
         keywords.add(KW_BF_FP_CHANCE);
@@ -99,16 +101,8 @@ public class CFPropDefs extends PropertyDefinitions
             CFMetaData.validateCompactionOptions(compactionStrategyClass, compactionOptions);
         }
 
-        Integer defaultTimeToLive = getInt(KW_DEFAULT_TIME_TO_LIVE, null);
-
-        if (defaultTimeToLive != null)
-        {
-            if (defaultTimeToLive < 0)
-                throw new ConfigurationException(String.format("%s cannot be smaller than %s, (default %s)",
-                        KW_DEFAULT_TIME_TO_LIVE,
-                        0,
-                        CFMetaData.DEFAULT_DEFAULT_TIME_TO_LIVE));
-        }
+        validateMinimumInt(KW_DEFAULT_TIME_TO_LIVE, 0, CFMetaData.DEFAULT_DEFAULT_TIME_TO_LIVE);
+        validateMinimumInt(KW_INDEX_INTERVAL, 1, CFMetaData.DEFAULT_INDEX_INTERVAL);
     }
 
     public Class<? extends AbstractCompactionStrategy> getCompactionStrategy()
@@ -152,6 +146,7 @@ public class CFPropDefs extends PropertyDefinitions
         cfm.speculativeRetry(CFMetaData.SpeculativeRetry.fromString(getString(KW_SPECULATIVE_RETRY, cfm.getSpeculativeRetry().toString())));
         cfm.memtableFlushPeriod(getInt(KW_MEMTABLE_FLUSH_PERIOD, cfm.getMemtableFlushPeriod()));
         cfm.populateIoCacheOnFlush(getBoolean(KW_POPULATE_IO_CACHE_ON_FLUSH, cfm.populateIoCacheOnFlush()));
+        cfm.indexInterval(getInt(KW_INDEX_INTERVAL, cfm.getIndexInterval()));
 
         if (compactionStrategyClass != null)
         {
@@ -170,4 +165,13 @@ public class CFPropDefs extends PropertyDefinitions
     {
         return String.format("CFPropDefs(%s)", properties.toString());
     }
+
+    private void validateMinimumInt(String field, int minimumValue, int defaultValue) throws SyntaxException, ConfigurationException
+    {
+        Integer val = getInt(field, null);
+        if (val != null && val < minimumValue)
+            throw new ConfigurationException(String.format("%s cannot be smaller than %s, (default %s)",
+                                                            field, minimumValue, defaultValue));
+
+    }
 }