You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/10/19 06:18:41 UTC

svn commit: r1185964 - in /cassandra/branches/cassandra-1.0: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/avro/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/db/migration...

Author: jbellis
Date: Wed Oct 19 04:18:40 2011
New Revision: 1185964

URL: http://svn.apache.org/viewvc?rev=1185964&view=rev
Log:
merge from 0.8

Removed:
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/RenameColumnFamily.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/RenameKeyspace.java
Modified:
    cassandra/branches/cassandra-1.0/   (props changed)
    cassandra/branches/cassandra-1.0/contrib/   (props changed)
    cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java   (props changed)
    cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java   (props changed)
    cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java   (props changed)
    cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java   (props changed)
    cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java   (props changed)
    cassandra/branches/cassandra-1.0/src/avro/internode.genavro
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/KSMetaData.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/RowMutation.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/Table.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/AddColumnFamily.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/DropColumnFamily.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java
    cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java
    cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/SchemaLoader.java
    cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java
    cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/DefsTest.java

Propchange: cassandra/branches/cassandra-1.0/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 19 04:18:40 2011
@@ -1,7 +1,7 @@
 /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7:1026516-1183000
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1183002,1183241
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1183002,1183241,1185761,1185960-1185961,1185963
 /cassandra/branches/cassandra-0.8.0:1125021-1130369
 /cassandra/branches/cassandra-0.8.1:1101014-1125018
 /cassandra/branches/cassandra-1.0:1167106,1167185

Propchange: cassandra/branches/cassandra-1.0/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 19 04:18:40 2011
@@ -1,7 +1,7 @@
 /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
 /cassandra/branches/cassandra-0.7/contrib:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1183002,1183241
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1183002,1183241,1185761,1185960-1185961,1185963
 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
 /cassandra/branches/cassandra-1.0/contrib:1167106,1167185

Propchange: cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 19 04:18:40 2011
@@ -1,7 +1,7 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1183002,1183241
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1183002,1183241,1185761,1185960-1185961,1185963
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018
 /cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167106,1167185

Propchange: cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 19 04:18:40 2011
@@ -1,7 +1,7 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1183002,1183241
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1183002,1183241,1185761,1185960-1185961,1185963
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1101014-1125018
 /cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167106,1167185

Propchange: cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 19 04:18:40 2011
@@ -1,7 +1,7 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1183002,1183241
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1183002,1183241,1185761,1185960-1185961,1185963
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1101014-1125018
 /cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167106,1167185

Propchange: cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 19 04:18:40 2011
@@ -1,7 +1,7 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1183002,1183241
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1183002,1183241,1185761,1185960-1185961,1185963
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1101014-1125018
 /cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167106,1167185

Propchange: cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Oct 19 04:18:40 2011
@@ -1,7 +1,7 @@
 /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1183000
 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1183002,1183241
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1183002,1183241,1185761,1185960-1185961,1185963
 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1101014-1125018
 /cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167106,1167185

Modified: cassandra/branches/cassandra-1.0/src/avro/internode.genavro
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/avro/internode.genavro?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/avro/internode.genavro (original)
+++ cassandra/branches/cassandra-1.0/src/avro/internode.genavro Wed Oct 19 04:18:40 2011
@@ -109,20 +109,6 @@ protocol InterNode {
     }
 
     @namespace("org.apache.cassandra.db.migration.avro")
-    record RenameColumnFamily {
-        string ksname;
-        int cfid;
-        string old_cfname;
-        string new_cfname;
-    }
-
-    @namespace("org.apache.cassandra.db.migration.avro")
-    record RenameKeyspace {
-        string old_ksname;
-        string new_ksname;
-    }
-    
-    @namespace("org.apache.cassandra.db.migration.avro")
     record UpdateKeyspace {
         KsDef oldKs;
         KsDef newKs;
@@ -139,6 +125,6 @@ protocol InterNode {
         org.apache.cassandra.utils.avro.UUID new_version;
         bytes row_mutation;
         string classname;
-        union { AddColumnFamily,DropColumnFamily,RenameColumnFamily,AddKeyspace,DropKeyspace,RenameKeyspace,UpdateKeyspace,UpdateColumnFamily } migration;
+        union { AddColumnFamily,DropColumnFamily,AddKeyspace,DropKeyspace,UpdateKeyspace,UpdateColumnFamily } migration;
     }
 }

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Wed Oct 19 04:18:40 2011
@@ -18,7 +18,10 @@
 
 package org.apache.cassandra.config;
 
-import java.io.*;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.InetAddress;
 import java.net.URL;
 import java.net.UnknownHostException;
@@ -34,18 +37,18 @@ import org.apache.cassandra.auth.IAuthor
 import org.apache.cassandra.config.Config.RequestSchedulerId;
 import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.DefsTable;
-import org.apache.cassandra.db.SystemTable;
-import org.apache.cassandra.db.Table;
 import org.apache.cassandra.db.migration.Migration;
 import org.apache.cassandra.dht.IPartitioner;
 import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.io.util.MmappedSegmentedFile;
-import org.apache.cassandra.locator.*;
+import org.apache.cassandra.locator.DynamicEndpointSnitch;
+import org.apache.cassandra.locator.EndpointSnitchInfo;
+import org.apache.cassandra.locator.IEndpointSnitch;
+import org.apache.cassandra.locator.SeedProvider;
 import org.apache.cassandra.scheduler.IRequestScheduler;
 import org.apache.cassandra.scheduler.NoScheduler;
 import org.apache.cassandra.thrift.CassandraDaemon;
 import org.apache.cassandra.utils.FBUtilities;
-
 import org.yaml.snakeyaml.Loader;
 import org.yaml.snakeyaml.TypeDescription;
 import org.yaml.snakeyaml.Yaml;
@@ -403,16 +406,7 @@ public class DatabaseDescriptor
                 partitioner.getTokenFactory().validate(conf.initial_token);
 
             // Hardcoded system tables
-            KSMetaData systemMeta = new KSMetaData(Table.SYSTEM_TABLE,
-                                                   LocalStrategy.class,
-                                                   KSMetaData.optsWithRF(1),
-                                                   CFMetaData.StatusCf,
-                                                   CFMetaData.HintsCf,
-                                                   CFMetaData.MigrationsCf,
-                                                   CFMetaData.SchemaCf,
-                                                   CFMetaData.IndexCf,
-                                                   CFMetaData.NodeIdCf,
-                                                   CFMetaData.VersionCf);
+            KSMetaData systemMeta = KSMetaData.systemKeyspace();
             Schema.instance.load(CFMetaData.StatusCf);
             Schema.instance.load(CFMetaData.HintsCf);
             Schema.instance.load(CFMetaData.MigrationsCf);

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/KSMetaData.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/KSMetaData.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/KSMetaData.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/config/KSMetaData.java Wed Oct 19 04:18:40 2011
@@ -21,30 +21,26 @@ package org.apache.cassandra.config;
 import java.util.*;
 
 import org.apache.commons.lang.ObjectUtils;
+import org.apache.commons.lang.StringUtils;
 
 import org.apache.avro.util.Utf8;
+import org.apache.cassandra.db.Table;
 import org.apache.cassandra.io.SerDeUtils;
 import org.apache.cassandra.locator.AbstractReplicationStrategy;
+import org.apache.cassandra.locator.LocalStrategy;
 import org.apache.cassandra.locator.NetworkTopologyStrategy;
 import org.apache.cassandra.thrift.CfDef;
 import org.apache.cassandra.thrift.KsDef;
 
-import org.apache.commons.lang.StringUtils;
-
 public final class KSMetaData
 {
     public final String name;
     public final Class<? extends AbstractReplicationStrategy> strategyClass;
     public final Map<String, String> strategyOptions;
     private final Map<String, CFMetaData> cfMetaData;
-    private boolean durable_writes;
-
-    public KSMetaData(String name, Class<? extends AbstractReplicationStrategy> strategyClass, Map<String, String> strategyOptions, CFMetaData... cfDefs)
-    {
-        this(name, strategyClass, strategyOptions, true, cfDefs);
-    }
+    public final boolean durableWrites;
 
-    public KSMetaData(String name, Class<? extends AbstractReplicationStrategy> strategyClass, Map<String, String> strategyOptions, boolean durable_writes, CFMetaData... cfDefs)
+    private KSMetaData(String name, Class<? extends AbstractReplicationStrategy> strategyClass, Map<String, String> strategyOptions, boolean durableWrites, Iterable<CFMetaData> cfDefs)
     {
         this.name = name;
         this.strategyClass = strategyClass == null ? NetworkTopologyStrategy.class : strategyClass;
@@ -53,19 +49,36 @@ public final class KSMetaData
         for (CFMetaData cfm : cfDefs)
             cfmap.put(cfm.cfName, cfm);
         this.cfMetaData = Collections.unmodifiableMap(cfmap);
-        this.durable_writes = durable_writes;
+        this.durableWrites = durableWrites;
     }
-    
-    public void setDurableWrites(boolean durable_writes)
+
+    public static KSMetaData cloneWith(KSMetaData ksm, Iterable<CFMetaData> cfDefs)
     {
-        this.durable_writes = durable_writes;
+        return new KSMetaData(ksm.name, ksm.strategyClass, ksm.strategyOptions, ksm.durableWrites, cfDefs);
     }
-    
-    public boolean isDurableWrites()
+
+    public static KSMetaData systemKeyspace()
     {
-        return durable_writes;
+        List<CFMetaData> cfDefs = Arrays.asList(CFMetaData.StatusCf,
+                                                CFMetaData.HintsCf,
+                                                CFMetaData.MigrationsCf,
+                                                CFMetaData.SchemaCf,
+                                                CFMetaData.IndexCf,
+                                                CFMetaData.NodeIdCf,
+                                                CFMetaData.VersionCf);
+        return new KSMetaData(Table.SYSTEM_TABLE, LocalStrategy.class, optsWithRF(1), false, cfDefs);
     }
-    
+
+    public static KSMetaData testMetadata(String name, Class<? extends AbstractReplicationStrategy> strategyClass, Map<String, String> strategyOptions, CFMetaData... cfDefs)
+    {
+        return new KSMetaData(name, strategyClass, strategyOptions, true, Arrays.asList(cfDefs));
+    }
+
+    public static KSMetaData testMetadataNotDurable(String name, Class<? extends AbstractReplicationStrategy> strategyClass, Map<String, String> strategyOptions, CFMetaData... cfDefs)
+    {
+        return new KSMetaData(name, strategyClass, strategyOptions, false, Arrays.asList(cfDefs));
+    }
+
     public static Map<String, String> forwardsCompatibleOptions(KsDef ks_def)
     {
         Map<String, String> options;
@@ -97,7 +110,7 @@ public final class KSMetaData
                 && ObjectUtils.equals(other.strategyClass, strategyClass)
                 && ObjectUtils.equals(other.strategyOptions, strategyOptions)
                 && other.cfMetaData.equals(cfMetaData)
-                && other.durable_writes == durable_writes;
+                && other.durableWrites == durableWrites;
     }
 
     public Map<String, CFMetaData> cfMetaData()
@@ -122,7 +135,7 @@ public final class KSMetaData
         for (CFMetaData cfm : cfMetaData.values())
             ks.cf_defs.add(cfm.toAvro());
         
-        ks.durable_writes = durable_writes;
+        ks.durable_writes = durableWrites;
         
         return ks;
     }
@@ -137,7 +150,7 @@ public final class KSMetaData
           .append("{")
           .append(StringUtils.join(cfMetaData.values(), ", "))
           .append("}")
-          .append(", durable_writes: ").append(durable_writes);
+          .append(", durable_writes: ").append(durableWrites);
         return sb.toString();
     }
 
@@ -174,10 +187,10 @@ public final class KSMetaData
         maybeAddReplicationFactor(strategyOptions, ks.strategy_class.toString(), ks.replication_factor);
 
         int cfsz = ks.cf_defs.size();
-        CFMetaData[] cfMetaData = new CFMetaData[cfsz];
+        List<CFMetaData> cfMetaData = new ArrayList<CFMetaData>(cfsz);
         Iterator<org.apache.cassandra.db.migration.avro.CfDef> cfiter = ks.cf_defs.iterator();
         for (int i = 0; i < cfsz; i++)
-            cfMetaData[i] = CFMetaData.fromAvro(cfiter.next());
+            cfMetaData.add(CFMetaData.fromAvro(cfiter.next()));
 
         return new KSMetaData(ks.name.toString(), repStratClass, strategyOptions, ks.durable_writes, cfMetaData);
     }
@@ -201,7 +214,7 @@ public final class KSMetaData
                               AbstractReplicationStrategy.getClass(ksd.strategy_class),
                               forwardsCompatibleOptions(ksd),
                               ksd.durable_writes,
-                              cfDefs);
+                              Arrays.asList(cfDefs));
     }
 
     public KsDef toThrift()
@@ -213,7 +226,7 @@ public final class KSMetaData
         ksdef.setStrategy_options(strategyOptions);
         if (strategyOptions != null && strategyOptions.containsKey("replication_factor"))
             ksdef.setReplication_factor(Integer.parseInt(strategyOptions.get("replication_factor")));
-        ksdef.setDurable_writes(durable_writes);
+        ksdef.setDurable_writes(durableWrites);
 
         return ksdef;
     }

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/RowMutation.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/RowMutation.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/RowMutation.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/RowMutation.java Wed Oct 19 04:18:40 2011
@@ -251,8 +251,8 @@ public class RowMutation implements IMut
     public void apply() throws IOException
     {
         KSMetaData ksm = Schema.instance.getTableDefinition(getTable());
-        
-        Table.open(table_).apply(this, ksm.isDurableWrites());
+
+        Table.open(table_).apply(this, ksm.durableWrites);
     }
 
     public void applyUnsafe() throws IOException

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/Table.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/Table.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/Table.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/Table.java Wed Oct 19 04:18:40 2011
@@ -372,16 +372,6 @@ public class Table
         columnFamilyStores.put(cfId, ColumnFamilyStore.createColumnFamilyStore(this, cfName));
     }
 
-    /** basically a combined drop and add */
-    public void renameCf(Integer cfId, String newName) throws IOException
-    {
-        assert columnFamilyStores.containsKey(cfId);
-        ColumnFamilyStore cfs = columnFamilyStores.remove(cfId);
-        unloadCf(cfs);
-        cfs.renameSSTables(newName);
-        initCf(cfId, newName);
-    }
-
     public Row getRow(QueryFilter filter) throws IOException
     {
         ColumnFamilyStore cfStore = getColumnFamilyStore(filter.getColumnFamilyName());

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/AddColumnFamily.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/AddColumnFamily.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/AddColumnFamily.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/AddColumnFamily.java Wed Oct 19 04:18:40 2011
@@ -2,9 +2,9 @@ package org.apache.cassandra.db.migratio
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+
+import com.google.common.collect.Iterables;
 
 import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.Table;
@@ -67,9 +67,7 @@ public class AddColumnFamily extends Mig
     
     private KSMetaData makeNewKeyspaceDefinition(KSMetaData ksm)
     {
-        List<CFMetaData> newCfs = new ArrayList<CFMetaData>(ksm.cfMetaData().values());
-        newCfs.add(cfm);
-        return new KSMetaData(ksm.name, ksm.strategyClass, ksm.strategyOptions, newCfs.toArray(new CFMetaData[newCfs.size()]));
+        return KSMetaData.cloneWith(ksm, Iterables.concat(ksm.cfMetaData().values(), Collections.singleton(cfm)));
     }
     
     public void applyModels() throws IOException

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/DropColumnFamily.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/DropColumnFamily.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/DropColumnFamily.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/DropColumnFamily.java Wed Oct 19 04:18:40 2011
@@ -62,7 +62,7 @@ public class DropColumnFamily extends Mi
         List<CFMetaData> newCfs = new ArrayList<CFMetaData>(ksm.cfMetaData().values());
         newCfs.remove(cfm);
         assert newCfs.size() == ksm.cfMetaData().size() - 1;
-        return new KSMetaData(ksm.name, ksm.strategyClass, ksm.strategyOptions, newCfs.toArray(new CFMetaData[newCfs.size()]));
+        return KSMetaData.cloneWith(ksm, newCfs);
     }
 
     public void applyModels() throws IOException

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java Wed Oct 19 04:18:40 2011
@@ -49,7 +49,7 @@ public class UpdateKeyspace extends Migr
         if (oldKsm == null)
             throw new ConfigurationException(ksm.name + " cannot be updated because it doesn't exist.");
 
-        this.newKsm = new KSMetaData(ksm.name, ksm.strategyClass, ksm.strategyOptions, ksm.isDurableWrites(), oldKsm.cfMetaData().values().toArray(new CFMetaData[]{}));
+        this.newKsm = KSMetaData.cloneWith(ksm, oldKsm.cfMetaData().values());
         rm = makeDefinitionMutation(newKsm, oldKsm, newVersion);
     }
     

Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/service/StorageService.java Wed Oct 19 04:18:40 2011
@@ -433,7 +433,7 @@ public class StorageService implements I
                 for (Table table : Table.all())
                 {
                     KSMetaData ksm = Schema.instance.getKSMetaData(table.name);
-                    if (!ksm.isDurableWrites())
+                    if (!ksm.durableWrites)
                     {
                         for (ColumnFamilyStore cfs : table.getColumnFamilyStores())
                         {

Modified: cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/SchemaLoader.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/SchemaLoader.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/SchemaLoader.java (original)
+++ cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/SchemaLoader.java Wed Oct 19 04:18:40 2011
@@ -111,142 +111,141 @@ public class SchemaLoader
             "Column42"));
 
         // Keyspace 1
-        schema.add(new KSMetaData(ks1,
-                                  simple,
-                                  opts_rf1,
-
-                                  // Column Families
-                                  standardCFMD(ks1, "Standard1"),
-                                  standardCFMD(ks1, "Standard2"),
-                                  standardCFMD(ks1, "Standard3"),
-                                  standardCFMD(ks1, "Standard4"),
-                                  standardCFMD(ks1, "StandardLong1"),
-                                  standardCFMD(ks1, "StandardLong2"),
-                                  new CFMetaData(ks1,
-                                                 "ValuesWithQuotes",
-                                                 st,
-                                                 BytesType.instance,
-                                                 null)
-                                                 .defaultValidator(UTF8Type.instance),
-                                  superCFMD(ks1, "Super1", LongType.instance),
-                                  superCFMD(ks1, "Super2", LongType.instance),
-                                  superCFMD(ks1, "Super3", LongType.instance),
-                                  superCFMD(ks1, "Super4", UTF8Type.instance),
-                                  superCFMD(ks1, "Super5", bytes),
-                                  indexCFMD(ks1, "Indexed1", true),
-                                  indexCFMD(ks1, "Indexed2", false),
-                                  new CFMetaData(ks1,
-                                                 "StandardInteger1",
-                                                 st,
-                                                 IntegerType.instance,
-                                                 null)
-                                                 .keyCacheSize(0),
-                                  new CFMetaData(ks1,
-                                                 "Counter1",
-                                                 st,
-                                                 bytes,
-                                                 null)
-                                                 .defaultValidator(CounterColumnType.instance)
-                                                 .mergeShardsChance(1.0),
-                                  new CFMetaData(ks1,
-                                                 "SuperCounter1",
-                                                 su,
-                                                 bytes,
-                                                 bytes)
-                                                 .defaultValidator(CounterColumnType.instance)
-                                                 .mergeShardsChance(1.0),
-                                  jdbcCFMD(ks1, "JdbcInteger", IntegerType.instance).columnMetadata(integerColumn),
-                                  jdbcCFMD(ks1, "JdbcUtf8", UTF8Type.instance).columnMetadata(utf8Column),
-                                  jdbcCFMD(ks1, "JdbcLong", LongType.instance),
-                                  jdbcCFMD(ks1, "JdbcBytes", bytes),
-                                  jdbcCFMD(ks1, "JdbcAscii", AsciiType.instance),
-                                  new CFMetaData(ks1,
-                                                 "StandardComposite",
-                                                 st,
-                                                 composite,
-                                                 null),
-                                  new CFMetaData(ks1,
-                                                 "StandardDynamicComposite",
-                                                 st,
-                                                 dynamicComposite,
-                                                 null)));
+        schema.add(KSMetaData.testMetadata(ks1,
+                                           simple,
+                                           opts_rf1,
+
+                                           // Column Families
+                                           standardCFMD(ks1, "Standard1"),
+                                           standardCFMD(ks1, "Standard2"),
+                                           standardCFMD(ks1, "Standard3"),
+                                           standardCFMD(ks1, "Standard4"),
+                                           standardCFMD(ks1, "StandardLong1"),
+                                           standardCFMD(ks1, "StandardLong2"),
+                                           new CFMetaData(ks1,
+                                                          "ValuesWithQuotes",
+                                                          st,
+                                                          BytesType.instance,
+                                                          null)
+                                                   .defaultValidator(UTF8Type.instance),
+                                           superCFMD(ks1, "Super1", LongType.instance),
+                                           superCFMD(ks1, "Super2", LongType.instance),
+                                           superCFMD(ks1, "Super3", LongType.instance),
+                                           superCFMD(ks1, "Super4", UTF8Type.instance),
+                                           superCFMD(ks1, "Super5", bytes),
+                                           indexCFMD(ks1, "Indexed1", true),
+                                           indexCFMD(ks1, "Indexed2", false),
+                                           new CFMetaData(ks1,
+                                                          "StandardInteger1",
+                                                          st,
+                                                          IntegerType.instance,
+                                                          null)
+                                                   .keyCacheSize(0),
+                                           new CFMetaData(ks1,
+                                                          "Counter1",
+                                                          st,
+                                                          bytes,
+                                                          null)
+                                                   .defaultValidator(CounterColumnType.instance)
+                                                   .mergeShardsChance(1.0),
+                                           new CFMetaData(ks1,
+                                                          "SuperCounter1",
+                                                          su,
+                                                          bytes,
+                                                          bytes)
+                                                   .defaultValidator(CounterColumnType.instance)
+                                                   .mergeShardsChance(1.0),
+                                           jdbcCFMD(ks1, "JdbcInteger", IntegerType.instance).columnMetadata(integerColumn),
+                                           jdbcCFMD(ks1, "JdbcUtf8", UTF8Type.instance).columnMetadata(utf8Column),
+                                           jdbcCFMD(ks1, "JdbcLong", LongType.instance),
+                                           jdbcCFMD(ks1, "JdbcBytes", bytes),
+                                           jdbcCFMD(ks1, "JdbcAscii", AsciiType.instance),
+                                           new CFMetaData(ks1,
+                                                          "StandardComposite",
+                                                          st,
+                                                          composite,
+                                                          null),
+                                           new CFMetaData(ks1,
+                                                          "StandardDynamicComposite",
+                                                          st,
+                                                          dynamicComposite,
+                                                          null)));
 
         // Keyspace 2
-        schema.add(new KSMetaData(ks2,
-                                  simple,
-                                  opts_rf1,
-
-                                  // Column Families
-                                  standardCFMD(ks2, "Standard1"),
-                                  standardCFMD(ks2, "Standard3"),
-                                  superCFMD(ks2, "Super3", bytes),
-                                  superCFMD(ks2, "Super4", TimeUUIDType.instance),
-                                  indexCFMD(ks2, "Indexed1", true)));
+        schema.add(KSMetaData.testMetadata(ks2,
+                                           simple,
+                                           opts_rf1,
+
+                                           // Column Families
+                                           standardCFMD(ks2, "Standard1"),
+                                           standardCFMD(ks2, "Standard3"),
+                                           superCFMD(ks2, "Super3", bytes),
+                                           superCFMD(ks2, "Super4", TimeUUIDType.instance),
+                                           indexCFMD(ks2, "Indexed1", true)));
 
         // Keyspace 3
-        schema.add(new KSMetaData(ks3,
-                                  simple,
-                                  opts_rf5,
-
-                                  // Column Families
-                                  standardCFMD(ks3, "Standard1"),
-                                  indexCFMD(ks3, "Indexed1", true)));
+        schema.add(KSMetaData.testMetadata(ks3,
+                                           simple,
+                                           opts_rf5,
+
+                                           // Column Families
+                                           standardCFMD(ks3, "Standard1"),
+                                           indexCFMD(ks3, "Indexed1", true)));
 
         // Keyspace 4
-        schema.add(new KSMetaData(ks4,
-                                  simple,
-                                  opts_rf3,
-
-                                  // Column Families
-                                  standardCFMD(ks4, "Standard1"),
-                                  standardCFMD(ks4, "Standard3"),
-                                  superCFMD(ks4, "Super3", bytes),
-                                  superCFMD(ks4, "Super4", TimeUUIDType.instance),
-                                  new CFMetaData(ks4,
-                                                 "Super5",
-                                                 su,
-                                                 TimeUUIDType.instance,
-                                                 bytes)
-                                                 .keyCacheSize(0)));
+        schema.add(KSMetaData.testMetadata(ks4,
+                                           simple,
+                                           opts_rf3,
+
+                                           // Column Families
+                                           standardCFMD(ks4, "Standard1"),
+                                           standardCFMD(ks4, "Standard3"),
+                                           superCFMD(ks4, "Super3", bytes),
+                                           superCFMD(ks4, "Super4", TimeUUIDType.instance),
+                                           new CFMetaData(ks4,
+                                                          "Super5",
+                                                          su,
+                                                          TimeUUIDType.instance,
+                                                          bytes)
+                                                   .keyCacheSize(0)));
 
         // Keyspace 5
-        schema.add(new KSMetaData(ks5,
-                                  simple,
-                                  opts_rf2,
-                                  standardCFMD(ks5, "Standard1"),
-                                  standardCFMD(ks5, "Counter1")
-                                               .defaultValidator(CounterColumnType.instance)));
+        schema.add(KSMetaData.testMetadata(ks5,
+                                           simple,
+                                           opts_rf2,
+                                           standardCFMD(ks5, "Standard1"),
+                                           standardCFMD(ks5, "Counter1")
+                                                   .defaultValidator(CounterColumnType.instance)));
 
         // Keyspace 6
-        schema.add(new KSMetaData(ks6,
-                                  simple,
-                                  opts_rf1,
-                                  indexCFMD(ks6, "Indexed1", true)));
+        schema.add(KSMetaData.testMetadata(ks6,
+                                           simple,
+                                           opts_rf1,
+                                           indexCFMD(ks6, "Indexed1", true)));
 
         // KeyCacheSpace
-        schema.add(new KSMetaData(ks_kcs,
-                                  simple,
-                                  opts_rf1,
-                                  standardCFMD(ks_kcs, "Standard1")
-                                              .keyCacheSize(0.5),
-                                  standardCFMD(ks_kcs, "Standard2")
-                                              .keyCacheSize(1.0),
-                                  standardCFMD(ks_kcs, "Standard3")
-                                              .keyCacheSize(1.0)));
+        schema.add(KSMetaData.testMetadata(ks_kcs,
+                                           simple,
+                                           opts_rf1,
+                                           standardCFMD(ks_kcs, "Standard1")
+                                                   .keyCacheSize(0.5),
+                                           standardCFMD(ks_kcs, "Standard2")
+                                                   .keyCacheSize(1.0),
+                                           standardCFMD(ks_kcs, "Standard3")
+                                                   .keyCacheSize(1.0)));
 
         // RowCacheSpace
-        schema.add(new KSMetaData(ks_rcs,
-                                  simple,
-                                  opts_rf1,
-                                  standardCFMD(ks_rcs, "CFWithoutCache"),
-                                  standardCFMD(ks_rcs, "CachedCF")
-                                              .rowCacheSize(100)));
-
-        schema.add(new KSMetaData(ks_nocommit,
-                simple,
-                opts_rf1,
-                false,
-                standardCFMD(ks_nocommit, "Standard1")));
+        schema.add(KSMetaData.testMetadata(ks_rcs,
+                                           simple,
+                                           opts_rf1,
+                                           standardCFMD(ks_rcs, "CFWithoutCache"),
+                                           standardCFMD(ks_rcs, "CachedCF")
+                                                   .rowCacheSize(100)));
+
+        schema.add(KSMetaData.testMetadataNotDurable(ks_nocommit,
+                                                     simple,
+                                                     opts_rf1,
+                                                     standardCFMD(ks_nocommit, "Standard1")));
 
 
         if (Boolean.parseBoolean(System.getProperty("cassandra.test.compression", "false")))

Modified: cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java (original)
+++ cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java Wed Oct 19 04:18:40 2011
@@ -80,9 +80,9 @@ public class DatabaseDescriptorTest
         assert Schema.instance.getNonSystemTables().size() == 0;
         
         // add a few.
-        AddKeyspace ks0 = new AddKeyspace(new KSMetaData("ks0", SimpleStrategy.class, KSMetaData.optsWithRF(3)));
+        AddKeyspace ks0 = new AddKeyspace(KSMetaData.testMetadata("ks0", SimpleStrategy.class, KSMetaData.optsWithRF(3)));
         ks0.apply();
-        AddKeyspace ks1 = new AddKeyspace(new KSMetaData("ks1", SimpleStrategy.class, KSMetaData.optsWithRF(3)));
+        AddKeyspace ks1 = new AddKeyspace(KSMetaData.testMetadata("ks1", SimpleStrategy.class, KSMetaData.optsWithRF(3)));
         ks1.apply();
 
         assert Schema.instance.getTableDefinition("ks0") != null;

Modified: cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/DefsTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/DefsTest.java?rev=1185964&r1=1185963&r2=1185964&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/DefsTest.java (original)
+++ cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/DefsTest.java Wed Oct 19 04:18:40 2011
@@ -39,8 +39,6 @@ import org.apache.cassandra.db.migration
 import org.apache.cassandra.db.migration.DropColumnFamily;
 import org.apache.cassandra.db.migration.DropKeyspace;
 import org.apache.cassandra.db.migration.Migration;
-import org.apache.cassandra.db.migration.RenameColumnFamily;
-import org.apache.cassandra.db.migration.RenameKeyspace;
 import org.apache.cassandra.db.migration.UpdateColumnFamily;
 import org.apache.cassandra.db.migration.UpdateKeyspace;
 import org.apache.cassandra.io.SerDeUtils;
@@ -207,24 +205,18 @@ public class DefsTest extends CleanupHel
         UUID ver1 = m1.getVersion();
         assert Schema.instance.getVersion().equals(ver1);
         
-        // rename it.
-        Migration m2 = new RenameColumnFamily("Keyspace1", "MigrationCf_1", "MigrationCf_2");
-        m2.apply();
-        UUID ver2 = m2.getVersion();
-        assert Schema.instance.getVersion().equals(ver2);
-        
         // drop it.
-        Migration m3 = new DropColumnFamily("Keyspace1", "MigrationCf_2");
+        Migration m3 = new DropColumnFamily("Keyspace1", "MigrationCf_1");
         m3.apply();
         UUID ver3 = m3.getVersion();
         assert Schema.instance.getVersion().equals(ver3);
         
         // now lets load the older migrations to see if that code works.
         Collection<IColumn> serializedMigrations = Migration.getLocalMigrations(ver1, ver3);
-        assert serializedMigrations.size() == 3;
+        assert serializedMigrations.size() == 2;
         
         // test deserialization of the migrations.
-        Migration[] reconstituded = new Migration[3];
+        Migration[] reconstituded = new Migration[2];
         int i = 0;
         for (IColumn col : serializedMigrations)
         {
@@ -235,13 +227,11 @@ public class DefsTest extends CleanupHel
         }
         
         assert m1.getClass().equals(reconstituded[0].getClass());
-        assert m2.getClass().equals(reconstituded[1].getClass());
-        assert m3.getClass().equals(reconstituded[2].getClass());
+        assert m3.getClass().equals(reconstituded[1].getClass());
         
         // verify that the row mutations are the same. rather than exposing the private fields, serialize and verify.
         assert m1.serialize().equals(reconstituded[0].serialize());
-        assert m2.serialize().equals(reconstituded[1].serialize());
-        assert m3.serialize().equals(reconstituded[2].serialize());
+        assert m3.serialize().equals(reconstituded[1].serialize());
     }
     
     @Test
@@ -336,60 +326,14 @@ public class DefsTest extends CleanupHel
                 throw new AssertionError("undeleted file " + file);
         }
     }
-    
-    @Test
-    public void renameCf() throws ConfigurationException, IOException, ExecutionException, InterruptedException
-    {
-        DecoratedKey dk = Util.dk("key0");
-        final KSMetaData ks = Schema.instance.getTableDefinition("Keyspace2");
-        assert ks != null;
-        final CFMetaData oldCfm = ks.cfMetaData().get("Standard1");
-        assert oldCfm != null;
-        
-        // write some data, force a flush, then verify that files exist on disk.
-        RowMutation rm = new RowMutation(ks.name, dk.key);
-        for (int i = 0; i < 100; i++)
-            rm.add(new QueryPath(oldCfm.cfName, null, ByteBufferUtil.bytes(("col" + i))), ByteBufferUtil.bytes("anyvalue"), 1L);
-        rm.apply();
-        ColumnFamilyStore store = Table.open(oldCfm.ksName).getColumnFamilyStore(oldCfm.cfName);
-        assert store != null;
-        store.forceBlockingFlush();
-        int fileCount = DefsTable.getFiles(oldCfm.ksName, oldCfm.cfName).size();
-        assert fileCount > 0;
-        
-        final String cfName = "St4ndard1Replacement";
-        new RenameColumnFamily(oldCfm.ksName, oldCfm.cfName, cfName).apply();
 
-        assert !Schema.instance.getTableDefinition(ks.name).cfMetaData().containsKey(oldCfm.cfName);
-        assert Schema.instance.getTableDefinition(ks.name).cfMetaData().containsKey(cfName);
-        
-        // verify that new files are there.
-        assert DefsTable.getFiles(oldCfm.ksName, cfName).size() == fileCount;
-        
-        // do some reads.
-        store = Table.open(oldCfm.ksName).getColumnFamilyStore(cfName);
-        assert store != null;
-        ColumnFamily cfam = store.getColumnFamily(QueryFilter.getSliceFilter(dk, new QueryPath(cfName), ByteBufferUtil.EMPTY_BYTE_BUFFER, ByteBufferUtil.EMPTY_BYTE_BUFFER, false, 1000));
-        assert cfam.getSortedColumns().size() == 100; // should be good enough?
-        
-        // do some writes
-        rm = new RowMutation(ks.name, dk.key);
-        rm.add(new QueryPath(cfName, null, ByteBufferUtil.bytes("col5")), ByteBufferUtil.bytes("updated"), 2L);
-        rm.apply();
-        store.forceBlockingFlush();
-        
-        cfam = store.getColumnFamily(QueryFilter.getNamesFilter(dk, new QueryPath(cfName), ByteBufferUtil.bytes("col5")));
-        assert cfam.getColumnCount() == 1;
-        assert cfam.getColumn(ByteBufferUtil.bytes("col5")).value().equals( ByteBufferUtil.bytes("updated"));
-    }
-    
     @Test
     public void addNewKS() throws ConfigurationException, IOException, ExecutionException, InterruptedException
     {
         DecoratedKey dk = Util.dk("key0");
         CFMetaData newCf = addTestCF("NewKeyspace1", "AddedStandard1", "A new cf for a new ks");
 
-        KSMetaData newKs = new KSMetaData(newCf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(5), newCf);
+        KSMetaData newKs = KSMetaData.testMetadata(newCf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(5), newCf);
         
         new AddKeyspace(newKs).apply();
 
@@ -483,92 +427,11 @@ public class DefsTest extends CleanupHel
     }
 
     @Test
-    public void renameKs() throws ConfigurationException, IOException, ExecutionException, InterruptedException
-    {
-        DecoratedKey dk = Util.dk("renameKs");
-        final KSMetaData oldKs = Schema.instance.getTableDefinition("Keyspace2");
-        assert oldKs != null;
-        final String cfName = "Standard3";
-        assert oldKs.cfMetaData().containsKey(cfName);
-        assert oldKs.cfMetaData().get(cfName).ksName.equals(oldKs.name);
-        
-        // write some data that we hope to read back later.
-        RowMutation rm = new RowMutation(oldKs.name, dk.key);
-        for (int i = 0; i < 10; i++)
-            rm.add(new QueryPath(cfName, null, ByteBufferUtil.bytes(("col" + i))), ByteBufferUtil.bytes("value"), 1L);
-        rm.apply();
-        ColumnFamilyStore store = Table.open(oldKs.name).getColumnFamilyStore(cfName);
-        assert store != null;
-        store.forceBlockingFlush();
-        assert DefsTable.getFiles(oldKs.name, cfName).size() > 0;
-        
-        final String newKsName = "RenamedKeyspace2";
-        new RenameKeyspace(oldKs.name, newKsName).apply();
-        KSMetaData newKs = Schema.instance.getTableDefinition(newKsName);
-
-        assert Schema.instance.getTableDefinition(oldKs.name) == null;
-        assert newKs != null;
-        assert newKs.name.equals(newKsName);
-        assert newKs.cfMetaData().containsKey(cfName);
-        assert newKs.cfMetaData().get(cfName).ksName.equals(newKsName);
-        assert DefsTable.getFiles(newKs.name, cfName).size() > 0;
-        
-        // read on old should fail.
-        // reads should fail too.
-        boolean threw = false;
-        try
-        {
-            Table.open(oldKs.name);
-        }
-        catch (Throwable th)
-        {
-            threw = true;
-        }
-        assert threw;
-        
-        // write on old should fail.
-        rm = new RowMutation(oldKs.name, ByteBufferUtil.bytes("any key will do"));
-        boolean success = true;
-        try
-        {
-            rm.add(new QueryPath(cfName, null, ByteBufferUtil.bytes("col0")), ByteBufferUtil.bytes("value0"), 1L);
-            rm.apply();
-        }
-        catch (Throwable th)
-        {
-            success = false;
-        }
-        assert !success : "This mutation should have failed since the CF/Table no longer exists.";
-        
-        // write on new should work.
-        rm = new RowMutation(newKsName, dk.key);
-        rm.add(new QueryPath(cfName, null, ByteBufferUtil.bytes("col0")), ByteBufferUtil.bytes("newvalue"), 2L);
-        rm.apply();
-        store = Table.open(newKs.name).getColumnFamilyStore(cfName);
-        assert store != null;
-        store.forceBlockingFlush();
-        
-        // read on new should work.
-        SortedSet<ByteBuffer> cols = new TreeSet<ByteBuffer>(BytesType.instance);
-        cols.add(ByteBufferUtil.bytes("col0"));
-        cols.add(ByteBufferUtil.bytes("col1"));
-        ColumnFamily cfam = store.getColumnFamily(QueryFilter.getNamesFilter(dk, new QueryPath(cfName), cols));
-        assert cfam.getColumnCount() == cols.size();
-        // tests new write.
-        
-        ByteBuffer val = cfam.getColumn(ByteBufferUtil.bytes("col0")).value();
-        assertEquals(ByteBufferUtil.string(val), "newvalue");
-        // tests old write.
-         val = cfam.getColumn(ByteBufferUtil.bytes("col1")).value();
-        assertEquals(ByteBufferUtil.string(val), "value");
-    }
-
-    @Test
     public void createEmptyKsAddNewCf() throws ConfigurationException, IOException, ExecutionException, InterruptedException
     {
         assert Schema.instance.getTableDefinition("EmptyKeyspace") == null;
         
-        KSMetaData newKs = new KSMetaData("EmptyKeyspace", SimpleStrategy.class, KSMetaData.optsWithRF(5));
+        KSMetaData newKs = KSMetaData.testMetadata("EmptyKeyspace", SimpleStrategy.class, KSMetaData.optsWithRF(5));
 
         new AddKeyspace(newKs).apply();
         assert Schema.instance.getTableDefinition("EmptyKeyspace") != null;
@@ -604,7 +467,7 @@ public class DefsTest extends CleanupHel
     {
         // create a keyspace to serve as existing.
         CFMetaData cf = addTestCF("UpdatedKeyspace", "AddedStandard1", "A new cf for a new ks");
-        KSMetaData oldKs = new KSMetaData(cf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(5), cf);
+        KSMetaData oldKs = KSMetaData.testMetadata(cf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(5), cf);
         
         new AddKeyspace(oldKs).apply();
 
@@ -613,7 +476,7 @@ public class DefsTest extends CleanupHel
         
         // anything with cf defs should fail.
         CFMetaData cf2 = addTestCF(cf.ksName, "AddedStandard2", "A new cf for a new ks");
-        KSMetaData newBadKs = new KSMetaData(cf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(4), cf2);
+        KSMetaData newBadKs = KSMetaData.testMetadata(cf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(4), cf2);
         try
         {
             new UpdateKeyspace(newBadKs).apply();
@@ -625,7 +488,7 @@ public class DefsTest extends CleanupHel
         }
         
         // names should match.
-        KSMetaData newBadKs2 = new KSMetaData(cf.ksName + "trash", SimpleStrategy.class, KSMetaData.optsWithRF(4));
+        KSMetaData newBadKs2 = KSMetaData.testMetadata(cf.ksName + "trash", SimpleStrategy.class, KSMetaData.optsWithRF(4));
         try
         {
             new UpdateKeyspace(newBadKs2).apply();
@@ -636,7 +499,7 @@ public class DefsTest extends CleanupHel
             // expected.
         }
         
-        KSMetaData newKs = new KSMetaData(cf.ksName, OldNetworkTopologyStrategy.class, KSMetaData.optsWithRF(1));
+        KSMetaData newKs = KSMetaData.testMetadata(cf.ksName, OldNetworkTopologyStrategy.class, KSMetaData.optsWithRF(1));
         new UpdateKeyspace(newKs).apply();
 
         KSMetaData newFetchedKs = Schema.instance.getKSMetaData(newKs.name);
@@ -649,7 +512,7 @@ public class DefsTest extends CleanupHel
     {
         // create a keyspace with a cf to update.
         CFMetaData cf = addTestCF("UpdatedCfKs", "Standard1added", "A new cf that will be updated");
-        KSMetaData ksm = new KSMetaData(cf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(1), cf);
+        KSMetaData ksm = KSMetaData.testMetadata(cf.ksName, SimpleStrategy.class, KSMetaData.optsWithRF(1), cf);
         new AddKeyspace(ksm).apply();
 
         assert Schema.instance.getTableDefinition(cf.ksName) != null;