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 <[email protected]> Authored: Mon Jun 17 21:38:39 2013 -0500 Committer: Yuki Morishita <[email protected]> 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)); + + } }
