clean up CFMD defaults patch by jbellis; reviewed by vijay for CASSANDRA-4876
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dd4fd2c7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd4fd2c7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd4fd2c7 Branch: refs/heads/trunk Commit: dd4fd2c70bb9314ae35ec2a0452d7bda974fb2b1 Parents: 37cf942 Author: Jonathan Ellis <[email protected]> Authored: Sat Oct 27 10:48:42 2012 -0700 Committer: Jonathan Ellis <[email protected]> Committed: Thu Nov 1 11:29:19 2012 -0500 ---------------------------------------------------------------------- .../org/apache/cassandra/config/CFMetaData.java | 65 ++++---------- src/java/org/apache/cassandra/cql/CFPropDefs.java | 11 +-- src/java/org/apache/cassandra/db/ColumnIndex.java | 2 +- .../cassandra/utils/AlwaysPresentFilter.java | 1 + 4 files changed, 22 insertions(+), 57 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd4fd2c7/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 5319fb0..46fdac6 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -72,7 +72,7 @@ public final class CFMetaData public final static int DEFAULT_GC_GRACE_SECONDS = 864000; public final static int DEFAULT_MIN_COMPACTION_THRESHOLD = 4; public final static int DEFAULT_MAX_COMPACTION_THRESHOLD = 32; - public final static String DEFAULT_COMPACTION_STRATEGY_CLASS = "SizeTieredCompactionStrategy"; + public final static Class<? extends AbstractCompactionStrategy> DEFAULT_COMPACTION_STRATEGY_CLASS = SizeTieredCompactionStrategy.class; public final static ByteBuffer DEFAULT_KEY_NAME = ByteBufferUtil.bytes("KEY"); public final static Caching DEFAULT_CACHING_STRATEGY = Caching.KEYS_ONLY; @@ -240,27 +240,27 @@ public final class CFMetaData public volatile AbstractType<?> subcolumnComparator; // like comparator, for supercolumns //OPTIONAL - private volatile String comment; // default none, for humans only - private volatile double readRepairChance; // default 1.0 (always), chance [0.0,1.0] of read repair - private volatile double dcLocalReadRepairChance; // default 0.0 - private volatile boolean replicateOnWrite; // default false - private volatile int gcGraceSeconds; // default 864000 (ten days) - private volatile AbstractType<?> defaultValidator; // default BytesType (no-op), use comparator types - private volatile AbstractType<?> keyValidator; // default BytesType (no-op), use comparator types - private volatile int minCompactionThreshold; // default 4 - private volatile int maxCompactionThreshold; // default 32 + private volatile String comment = ""; + private volatile double readRepairChance = DEFAULT_READ_REPAIR_CHANCE; + private volatile double dcLocalReadRepairChance = DEFAULT_DCLOCAL_READ_REPAIR_CHANCE; + private volatile boolean replicateOnWrite = DEFAULT_REPLICATE_ON_WRITE; + private volatile int gcGraceSeconds = DEFAULT_GC_GRACE_SECONDS; + private volatile AbstractType<?> defaultValidator = BytesType.instance; + private volatile AbstractType<?> keyValidator = BytesType.instance; + private volatile int minCompactionThreshold = DEFAULT_MIN_COMPACTION_THRESHOLD; + private volatile int maxCompactionThreshold = DEFAULT_MAX_COMPACTION_THRESHOLD; // Both those aliases list can be null padded if only some of the position have been given an alias through ALTER TABLE .. RENAME private volatile List<ByteBuffer> keyAliases = new ArrayList<ByteBuffer>(); private volatile List<ByteBuffer> columnAliases = new ArrayList<ByteBuffer>(); - private volatile ByteBuffer valueAlias; // default NULL - private volatile Double bloomFilterFpChance; // default NULL - private volatile Caching caching; // default KEYS_ONLY (possible: all, key_only, row_only, none) + private volatile ByteBuffer valueAlias = null; + private volatile Double bloomFilterFpChance = null; + private volatile Caching caching = DEFAULT_CACHING_STRATEGY; - volatile Map<ByteBuffer, ColumnDefinition> column_metadata; - public volatile Class<? extends AbstractCompactionStrategy> compactionStrategyClass; - public volatile Map<String, String> compactionStrategyOptions; + volatile Map<ByteBuffer, ColumnDefinition> column_metadata = new HashMap<ByteBuffer,ColumnDefinition>(); + public volatile Class<? extends AbstractCompactionStrategy> compactionStrategyClass = DEFAULT_COMPACTION_STRATEGY_CLASS; + public volatile Map<String, String> compactionStrategyOptions = new HashMap<String, String>(); - public volatile CompressionParameters compressionParameters; + public volatile CompressionParameters compressionParameters = new CompressionParameters(null); // Processed infos used by CQL. This can be fully reconstructed from the CFMedata, // so it's not saved on disk. It is however costlyish to recreate for each query @@ -301,7 +301,7 @@ public final class CFMetaData subcolumnComparator = enforceSubccDefault(type, subcc); cfId = id; - this.init(); + updateCfDef(); // init cqlCfDef } private static CFMetaData compile(int id, String cql, String keyspace) @@ -341,33 +341,6 @@ public final class CFMetaData private void init() { - // Set a bunch of defaults - readRepairChance = DEFAULT_READ_REPAIR_CHANCE; - dcLocalReadRepairChance = DEFAULT_DCLOCAL_READ_REPAIR_CHANCE; - replicateOnWrite = DEFAULT_REPLICATE_ON_WRITE; - gcGraceSeconds = DEFAULT_GC_GRACE_SECONDS; - minCompactionThreshold = DEFAULT_MIN_COMPACTION_THRESHOLD; - maxCompactionThreshold = DEFAULT_MAX_COMPACTION_THRESHOLD; - caching = DEFAULT_CACHING_STRATEGY; - - // Defaults strange or simple enough to not need a DEFAULT_T for - defaultValidator = BytesType.instance; - keyValidator = BytesType.instance; - comment = ""; - valueAlias = null; - column_metadata = new HashMap<ByteBuffer,ColumnDefinition>(); - - try - { - compactionStrategyClass = createCompactionStrategy(DEFAULT_COMPACTION_STRATEGY_CLASS); - } - catch (ConfigurationException e) - { - throw new AssertionError(e); - } - compactionStrategyOptions = new HashMap<String, String>(); - - compressionParameters = new CompressionParameters(null); updateCfDef(); // init cqlCfDef } @@ -657,7 +630,7 @@ public final class CFMetaData if (!cf_def.isSetMax_compaction_threshold()) cf_def.setMax_compaction_threshold(CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD); if (cf_def.compaction_strategy == null) - cf_def.compaction_strategy = DEFAULT_COMPACTION_STRATEGY_CLASS; + cf_def.compaction_strategy = DEFAULT_COMPACTION_STRATEGY_CLASS.getSimpleName(); if (cf_def.compaction_strategy_options == null) cf_def.compaction_strategy_options = Collections.emptyMap(); if (!cf_def.isSetCompression_options()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd4fd2c7/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 b402b29..d50f2d0 100644 --- a/src/java/org/apache/cassandra/cql/CFPropDefs.java +++ b/src/java/org/apache/cassandra/cql/CFPropDefs.java @@ -116,16 +116,7 @@ public class CFPropDefs { public void validate() throws InvalidRequestException { - String compStrategy = getPropertyString(KW_COMPACTION_STRATEGY_CLASS, CFMetaData.DEFAULT_COMPACTION_STRATEGY_CLASS); - - try - { - compactionStrategyClass = CFMetaData.createCompactionStrategy(compStrategy); - } - catch (ConfigurationException e) - { - throw new InvalidRequestException(e.getMessage()); - } + compactionStrategyClass = CFMetaData.DEFAULT_COMPACTION_STRATEGY_CLASS; // we need to remove parent:key = value pairs from the main properties Set<String> propsToRemove = new HashSet<String>(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd4fd2c7/src/java/org/apache/cassandra/db/ColumnIndex.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java b/src/java/org/apache/cassandra/db/ColumnIndex.java index 761b004..bd1c35a 100644 --- a/src/java/org/apache/cassandra/db/ColumnIndex.java +++ b/src/java/org/apache/cassandra/db/ColumnIndex.java @@ -106,7 +106,7 @@ public class ColumnIndex * Serializes the index into in-memory structure with all required components * such as Bloom Filter, index block size, IndexInfo list * - * @param columns Column family to create index for + * @param cf Column family to create index for * * @return information about index - it's Bloom Filter, block size and IndexInfo list */ http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd4fd2c7/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java b/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java index 723536d..521eff0 100644 --- a/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java +++ b/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java @@ -1,5 +1,6 @@ package org.apache.cassandra.utils; +import java.io.IOException; import java.nio.ByteBuffer; public class AlwaysPresentFilter implements IFilter
