Add caching and bloomFilterFpChance to CQL CF options patch by xedin & slebresne; reviewed by xedin for CASSANDRA-4042
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6a35df38 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6a35df38 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6a35df38 Branch: refs/heads/cassandra-1.1 Commit: 6a35df38ca6fd9aa9e1ffb639beade0acaada62e Parents: c38d326 Author: Sylvain Lebresne <sylv...@datastax.com> Authored: Tue Mar 27 16:33:01 2012 +0200 Committer: Sylvain Lebresne <sylv...@datastax.com> Committed: Tue Mar 27 17:05:39 2012 +0200 ---------------------------------------------------------------------- CHANGES.txt | 3 +++ src/java/org/apache/cassandra/config/Avro.java | 2 +- .../org/apache/cassandra/config/CFMetaData.java | 5 ++++- .../apache/cassandra/cql/AlterTableStatement.java | 2 ++ src/java/org/apache/cassandra/cql/CFPropDefs.java | 5 ++++- .../cassandra/cql/CreateColumnFamilyStatement.java | 2 ++ src/java/org/apache/cassandra/cql3/CFPropDefs.java | 5 ++++- .../cql3/statements/AlterTableStatement.java | 2 ++ .../statements/CreateColumnFamilyStatement.java | 2 ++ 9 files changed, 24 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 0c726fd..4238260 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,6 @@ +1.1-dev + * Adds caching and bloomFilterFpChange to CQL options (CASSANDRA-4042) + 1.1-beta2 * rename loaded sstables to avoid conflicts with local snapshots (CASSANDRA-3967) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/src/java/org/apache/cassandra/config/Avro.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/config/Avro.java b/src/java/org/apache/cassandra/config/Avro.java index b34d37a..954a6aa 100644 --- a/src/java/org/apache/cassandra/config/Avro.java +++ b/src/java/org/apache/cassandra/config/Avro.java @@ -155,7 +155,7 @@ public class Avro try { - caching = cf.caching == null ? CFMetaData.Caching.KEYS_ONLY : CFMetaData.Caching.fromString(cf.caching.toString()); + caching = cf.caching == null ? CFMetaData.DEFAULT_CACHING_STRATEGY : CFMetaData.Caching.fromString(cf.caching.toString()); } catch (ConfigurationException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/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 2c1df75..b8b97bb 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -67,6 +67,8 @@ public final class CFMetaData public final static int DEFAULT_MAX_COMPACTION_THRESHOLD = 32; public final static String DEFAULT_COMPACTION_STRATEGY_CLASS = "SizeTieredCompactionStrategy"; public final static ByteBuffer DEFAULT_KEY_NAME = ByteBufferUtil.bytes("KEY"); + public final static Caching DEFAULT_CACHING_STRATEGY = Caching.KEYS_ONLY; + public final static Double DEFAULT_BF_FP_CHANCE = null; public static final CFMetaData StatusCf = newSystemMetadata(SystemTable.STATUS_CF, 0, "persistent metadata for the local node", BytesType.instance, null); public static final CFMetaData HintsCf = newSystemMetadata(HintedHandOffManager.HINTS_CF, 1, "hinted handoff data", BytesType.instance, BytesType.instance); @@ -248,7 +250,8 @@ public final class CFMetaData // System cfs have specific ids, and copies of old CFMDs need // to copy over the old id. cfId = id; - caching = Caching.KEYS_ONLY; + caching = DEFAULT_CACHING_STRATEGY; + bloomFilterFpChance = DEFAULT_BF_FP_CHANCE; this.init(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/src/java/org/apache/cassandra/cql/AlterTableStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/AlterTableStatement.java b/src/java/org/apache/cassandra/cql/AlterTableStatement.java index 0557397..b8b2e6f 100644 --- a/src/java/org/apache/cassandra/cql/AlterTableStatement.java +++ b/src/java/org/apache/cassandra/cql/AlterTableStatement.java @@ -187,6 +187,8 @@ public class AlterTableStatement cfDef.replicate_on_write = cfProps.getPropertyBoolean(CFPropDefs.KW_REPLICATEONWRITE, cfDef.replicate_on_write); cfDef.min_compaction_threshold = cfProps.getPropertyInt(CFPropDefs.KW_MINCOMPACTIONTHRESHOLD, cfDef.min_compaction_threshold); cfDef.max_compaction_threshold = cfProps.getPropertyInt(CFPropDefs.KW_MAXCOMPACTIONTHRESHOLD, cfDef.max_compaction_threshold); + cfDef.caching = cfProps.getPropertyString(CFPropDefs.KW_CACHING, cfDef.caching); + cfDef.bloom_filter_fp_chance = cfProps.getPropertyDouble(CFPropDefs.KW_BF_FP_CHANCE, cfDef.bloom_filter_fp_chance); if (!cfProps.compactionStrategyOptions.isEmpty()) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/src/java/org/apache/cassandra/cql/CFPropDefs.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/CFPropDefs.java b/src/java/org/apache/cassandra/cql/CFPropDefs.java index 8bcbcf2..f9033a8 100644 --- a/src/java/org/apache/cassandra/cql/CFPropDefs.java +++ b/src/java/org/apache/cassandra/cql/CFPropDefs.java @@ -50,8 +50,9 @@ public class CFPropDefs { public static final String KW_MINCOMPACTIONTHRESHOLD = "min_compaction_threshold"; public static final String KW_MAXCOMPACTIONTHRESHOLD = "max_compaction_threshold"; public static final String KW_REPLICATEONWRITE = "replicate_on_write"; - public static final String KW_COMPACTION_STRATEGY_CLASS = "compaction_strategy_class"; + public static final String KW_CACHING = "caching"; + public static final String KW_BF_FP_CHANCE = "bloom_filter_fp_chance"; // Maps CQL short names to the respective Cassandra comparator/validator class names public static final Map<String, String> comparators = new HashMap<String, String>(); @@ -89,6 +90,8 @@ public class CFPropDefs { keywords.add(KW_MAXCOMPACTIONTHRESHOLD); keywords.add(KW_REPLICATEONWRITE); keywords.add(KW_COMPACTION_STRATEGY_CLASS); + keywords.add(KW_CACHING); + keywords.add(KW_BF_FP_CHANCE); obsoleteKeywords.add("row_cache_size"); obsoleteKeywords.add("key_cache_size"); http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java index a5acd62..85d5ee4 100644 --- a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java +++ b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java @@ -189,6 +189,8 @@ public class CreateColumnFamilyStatement .compactionStrategyClass(cfProps.compactionStrategyClass) .compactionStrategyOptions(cfProps.compactionStrategyOptions) .compressionParameters(CompressionParameters.create(cfProps.compressionParameters)) + .caching(CFMetaData.Caching.fromString(getPropertyString(CFPropDefs.KW_CACHING, CFMetaData.DEFAULT_CACHING_STRATEGY.toString()))) + .bloomFilterFpChance(getPropertyDouble(CFPropDefs.KW_BF_FP_CHANCE, CFMetaData.DEFAULT_BF_FP_CHANCE)) .validate(); } catch (ConfigurationException e) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/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 7ac2167..8546080 100644 --- a/src/java/org/apache/cassandra/cql3/CFPropDefs.java +++ b/src/java/org/apache/cassandra/cql3/CFPropDefs.java @@ -45,8 +45,9 @@ public class CFPropDefs public static final String KW_MINCOMPACTIONTHRESHOLD = "min_compaction_threshold"; public static final String KW_MAXCOMPACTIONTHRESHOLD = "max_compaction_threshold"; public static final String KW_REPLICATEONWRITE = "replicate_on_write"; - public static final String KW_COMPACTION_STRATEGY_CLASS = "compaction_strategy_class"; + public static final String KW_CACHING = "caching"; + public static final String KW_BF_FP_CHANCE = "bloom_filter_fp_chance"; // Maps CQL short names to the respective Cassandra comparator/validator class names public static final Map<String, String> comparators = new HashMap<String, String>(); @@ -82,6 +83,8 @@ public class CFPropDefs keywords.add(KW_MAXCOMPACTIONTHRESHOLD); keywords.add(KW_REPLICATEONWRITE); keywords.add(KW_COMPACTION_STRATEGY_CLASS); + keywords.add(KW_CACHING); + keywords.add(KW_BF_FP_CHANCE); obsoleteKeywords.add("row_cache_size"); obsoleteKeywords.add("key_cache_size"); http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java b/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java index 9e08fbb..5fd9786 100644 --- a/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java @@ -150,6 +150,8 @@ public class AlterTableStatement extends SchemaAlteringStatement cfDef.replicate_on_write = cfProps.getBoolean(CFPropDefs.KW_REPLICATEONWRITE, cfDef.replicate_on_write); cfDef.min_compaction_threshold = cfProps.getInt(CFPropDefs.KW_MINCOMPACTIONTHRESHOLD, cfDef.min_compaction_threshold); cfDef.max_compaction_threshold = cfProps.getInt(CFPropDefs.KW_MAXCOMPACTIONTHRESHOLD, cfDef.max_compaction_threshold); + cfDef.caching = cfProps.getString(CFPropDefs.KW_CACHING, cfDef.caching); + cfDef.bloom_filter_fp_chance = cfProps.getDouble(CFPropDefs.KW_BF_FP_CHANCE, cfDef.bloom_filter_fp_chance); if (!cfProps.compactionStrategyOptions.isEmpty()) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a35df38/src/java/org/apache/cassandra/cql3/statements/CreateColumnFamilyStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/statements/CreateColumnFamilyStatement.java b/src/java/org/apache/cassandra/cql3/statements/CreateColumnFamilyStatement.java index 1689895..da9f4da 100644 --- a/src/java/org/apache/cassandra/cql3/statements/CreateColumnFamilyStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/CreateColumnFamilyStatement.java @@ -117,6 +117,8 @@ public class CreateColumnFamilyStatement extends SchemaAlteringStatement .valueAlias(valueAlias) .compactionStrategyOptions(properties.compactionStrategyOptions) .compressionParameters(CompressionParameters.create(properties.compressionParameters)) + .caching(CFMetaData.Caching.fromString(properties.getString(CFPropDefs.KW_CACHING, CFMetaData.DEFAULT_CACHING_STRATEGY.toString()))) + .bloomFilterFpChance(properties.getDouble(CFPropDefs.KW_BF_FP_CHANCE, CFMetaData.DEFAULT_BF_FP_CHANCE)) .validate(); } catch (ConfigurationException e)