You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by go...@apache.org on 2011/06/16 22:44:51 UTC
svn commit: r1136662 - in /cassandra/trunk/src/java/org/apache/cassandra:
cli/CliClient.java config/CFMetaData.java db/ColumnFamilyStore.java
Author: goffinet
Date: Thu Jun 16 20:44:50 2011
New Revision: 1136662
URL: http://svn.apache.org/viewvc?rev=1136662&view=rev
Log:
Fixed the ability to set compaction strategy in cli using create column family command
patch by alanliang; reviewed by goffinet for CASSANDRA-2778
Modified:
cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1136662&r1=1136661&r2=1136662&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Thu Jun 16 20:44:50 2011
@@ -1731,7 +1731,7 @@ public class CliClient
sessionState.out.printf(" Compaction Strategy: %s%n", cf_def.compaction_strategy);
if (!cf_def.compaction_strategy_options.isEmpty())
{
- sessionState.out.printf(" Compaction Strategy Options: %s%n", cf_def.compaction_strategy);
+ sessionState.out.println(" Compaction Strategy Options:");
for (Map.Entry<String, String> e : cf_def.compaction_strategy_options.entrySet())
sessionState.out.printf(" %s: %s%n", e.getKey(), e.getValue());
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java?rev=1136662&r1=1136661&r2=1136662&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java Thu Jun 16 20:44:50 2011
@@ -705,6 +705,19 @@ public final class CFMetaData
if (cf_def.isSetRow_cache_provider()) { newCFMD.rowCacheProvider(FBUtilities.newCacheProvider(cf_def.row_cache_provider)); }
if (cf_def.isSetKey_alias()) { newCFMD.keyAlias(cf_def.key_alias); }
if (cf_def.isSetKey_validation_class()) { newCFMD.keyValidator(TypeParser.parse(cf_def.key_validation_class)); }
+ if (cf_def.isSetCompaction_strategy())
+ {
+ try
+ {
+ newCFMD.compactionStrategyClass((Class<? extends AbstractCompactionStrategy>)Class.forName(cf_def.compaction_strategy));
+ }
+ catch (Exception e)
+ {
+ throw new ConfigurationException("Unable to set Compaction Strategy Class of " + cf_def.compaction_strategy, e);
+ }
+ }
+ if (cf_def.isSetCompaction_strategy_options())
+ newCFMD.compactionStrategyOptions(new HashMap<String, String>(cf_def.compaction_strategy_options));
return newCFMD.comment(cf_def.comment)
.rowCacheSize(cf_def.row_cache_size)
@@ -817,6 +830,7 @@ public final class CFMetaData
if (null != cf_def.compaction_strategy_options)
{
+ compactionStrategyOptions = new HashMap<String, String>();
for (Map.Entry<CharSequence, CharSequence> e : cf_def.compaction_strategy_options.entrySet())
compactionStrategyOptions.put(e.getKey().toString(), e.getValue().toString());
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1136662&r1=1136661&r2=1136662&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Thu Jun 16 20:44:50 2011
@@ -195,7 +195,9 @@ public class ColumnFamilyStore implement
rowCacheSaveInSeconds = new DefaultInteger(metadata.getRowCacheSavePeriodInSeconds());
if (!keyCacheSaveInSeconds.isModified())
keyCacheSaveInSeconds = new DefaultInteger(metadata.getKeyCacheSavePeriodInSeconds());
-
+
+ compactionStrategy = metadata.createCompactionStrategyInstance(this);
+
updateCacheSizes();
scheduleCacheSaving(rowCacheSaveInSeconds.value(), keyCacheSaveInSeconds.value());