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;