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());