You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2017/01/27 22:18:20 UTC
[14/37] cassandra git commit: Make TableMetadata immutable,
optimize Schema
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
index 0b40fcb..ba702dd 100644
--- a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
+++ b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
@@ -22,23 +22,20 @@ import java.util.*;
import com.datastax.driver.core.*;
-import org.apache.cassandra.config.ColumnDefinition;
-import org.apache.cassandra.config.ColumnDefinition.ClusteringOrder;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.SchemaConstants;
+import org.apache.cassandra.schema.*;
+import org.apache.cassandra.schema.ColumnMetadata;
+import org.apache.cassandra.schema.ColumnMetadata.ClusteringOrder;
import org.apache.cassandra.cql3.ColumnIdentifier;
import org.apache.cassandra.db.marshal.*;
import org.apache.cassandra.dht.*;
import org.apache.cassandra.dht.Token;
import org.apache.cassandra.dht.Token.TokenFactory;
import org.apache.cassandra.io.sstable.SSTableLoader;
-import org.apache.cassandra.schema.CQLTypeParser;
-import org.apache.cassandra.schema.SchemaKeyspace;
-import org.apache.cassandra.schema.Types;
+import org.apache.cassandra.schema.TableMetadata;
public class NativeSSTableLoaderClient extends SSTableLoader.Client
{
- protected final Map<String, CFMetaData> tables;
+ protected final Map<String, TableMetadataRef> tables;
private final Collection<InetAddress> hosts;
private final int port;
private final AuthProvider authProvider;
@@ -90,20 +87,20 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
Types types = fetchTypes(keyspace, session);
tables.putAll(fetchTables(keyspace, session, partitioner, types));
- // We only need the CFMetaData for the views, so we only load that.
+ // We only need the TableMetadata for the views, so we only load that.
tables.putAll(fetchViews(keyspace, session, partitioner, types));
}
}
- public CFMetaData getTableMetadata(String tableName)
+ public TableMetadataRef getTableMetadata(String tableName)
{
return tables.get(tableName);
}
@Override
- public void setTableMetadata(CFMetaData cfm)
+ public void setTableMetadata(TableMetadataRef cfm)
{
- tables.put(cfm.cfName, cfm);
+ tables.put(cfm.name, cfm);
}
private static Types fetchTypes(String keyspace, Session session)
@@ -130,9 +127,9 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
* Note: It is not safe for this class to use static methods from SchemaKeyspace (static final fields are ok)
* as that triggers initialization of the class, which fails in client mode.
*/
- private static Map<String, CFMetaData> fetchTables(String keyspace, Session session, IPartitioner partitioner, Types types)
+ private static Map<String, TableMetadataRef> fetchTables(String keyspace, Session session, IPartitioner partitioner, Types types)
{
- Map<String, CFMetaData> tables = new HashMap<>();
+ Map<String, TableMetadataRef> tables = new HashMap<>();
String query = String.format("SELECT * FROM %s.%s WHERE keyspace_name = ?", SchemaConstants.SCHEMA_KEYSPACE_NAME, SchemaKeyspace.TABLES);
for (Row row : session.execute(query, keyspace))
@@ -144,12 +141,9 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
return tables;
}
- /*
- * In the case where we are creating View CFMetaDatas, we
- */
- private static Map<String, CFMetaData> fetchViews(String keyspace, Session session, IPartitioner partitioner, Types types)
+ private static Map<String, TableMetadataRef> fetchViews(String keyspace, Session session, IPartitioner partitioner, Types types)
{
- Map<String, CFMetaData> tables = new HashMap<>();
+ Map<String, TableMetadataRef> tables = new HashMap<>();
String query = String.format("SELECT * FROM %s.%s WHERE keyspace_name = ?", SchemaConstants.SCHEMA_KEYSPACE_NAME, SchemaKeyspace.VIEWS);
for (Row row : session.execute(query, keyspace))
@@ -161,43 +155,31 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
return tables;
}
- private static CFMetaData createTableMetadata(String keyspace,
- Session session,
- IPartitioner partitioner,
- boolean isView,
- Row row,
- String name,
- Types types)
+ private static TableMetadataRef createTableMetadata(String keyspace,
+ Session session,
+ IPartitioner partitioner,
+ boolean isView,
+ Row row,
+ String name,
+ Types types)
{
- UUID id = row.getUUID("id");
- Set<CFMetaData.Flag> flags = isView ? Collections.emptySet() : CFMetaData.flagsFromStrings(row.getSet("flags", String.class));
+ TableMetadata.Builder builder = TableMetadata.builder(keyspace, name, TableId.fromUUID(row.getUUID("id")))
+ .partitioner(partitioner);
- boolean isSuper = flags.contains(CFMetaData.Flag.SUPER);
- boolean isCounter = flags.contains(CFMetaData.Flag.COUNTER);
- boolean isDense = flags.contains(CFMetaData.Flag.DENSE);
- boolean isCompound = isView || flags.contains(CFMetaData.Flag.COMPOUND);
+ if (!isView)
+ builder.flags(TableMetadata.Flag.fromStringSet(row.getSet("flags", String.class)));
String columnsQuery = String.format("SELECT * FROM %s.%s WHERE keyspace_name = ? AND table_name = ?",
SchemaConstants.SCHEMA_KEYSPACE_NAME,
SchemaKeyspace.COLUMNS);
- List<ColumnDefinition> defs = new ArrayList<>();
for (Row colRow : session.execute(columnsQuery, keyspace, name))
- defs.add(createDefinitionFromRow(colRow, keyspace, name, types));
-
- return CFMetaData.create(keyspace,
- name,
- id,
- isDense,
- isCompound,
- isSuper,
- isCounter,
- isView,
- defs,
- partitioner);
+ builder.addColumn(createDefinitionFromRow(colRow, keyspace, name, types));
+
+ return TableMetadataRef.forOfflineTools(builder.build());
}
- private static ColumnDefinition createDefinitionFromRow(Row row, String keyspace, String table, Types types)
+ private static ColumnMetadata createDefinitionFromRow(Row row, String keyspace, String table, Types types)
{
ClusteringOrder order = ClusteringOrder.valueOf(row.getString("clustering_order").toUpperCase());
AbstractType<?> type = CQLTypeParser.parse(keyspace, row.getString("type"), types);
@@ -209,7 +191,7 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client
row.getString("column_name"));
int position = row.getInt("position");
- ColumnDefinition.Kind kind = ColumnDefinition.Kind.valueOf(row.getString("kind").toUpperCase());
- return new ColumnDefinition(keyspace, table, name, type, position, kind);
+ org.apache.cassandra.schema.ColumnMetadata.Kind kind = ColumnMetadata.Kind.valueOf(row.getString("kind").toUpperCase());
+ return new ColumnMetadata(keyspace, table, name, type, position, kind);
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/long/org/apache/cassandra/cql3/CorruptionTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/cql3/CorruptionTest.java b/test/long/org/apache/cassandra/cql3/CorruptionTest.java
index 43cf5e0..f2ed36a 100644
--- a/test/long/org/apache/cassandra/cql3/CorruptionTest.java
+++ b/test/long/org/apache/cassandra/cql3/CorruptionTest.java
@@ -37,7 +37,7 @@ import com.datastax.driver.core.policies.Policies;
import com.datastax.driver.core.utils.Bytes;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.schema.Schema;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.service.EmbeddedCassandraService;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/long/org/apache/cassandra/db/commitlog/CommitLogStressTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/db/commitlog/CommitLogStressTest.java b/test/long/org/apache/cassandra/db/commitlog/CommitLogStressTest.java
index 3f5be03..eb1be8b 100644
--- a/test/long/org/apache/cassandra/db/commitlog/CommitLogStressTest.java
+++ b/test/long/org/apache/cassandra/db/commitlog/CommitLogStressTest.java
@@ -47,6 +47,7 @@ import org.apache.cassandra.db.partitions.PartitionUpdate;
import org.apache.cassandra.db.rows.*;
import org.apache.cassandra.io.util.DataInputBuffer;
import org.apache.cassandra.io.util.DataInputPlus;
+import org.apache.cassandra.schema.Schema;
import org.apache.cassandra.security.EncryptionContext;
import org.apache.cassandra.security.EncryptionContextGenerator;
@@ -262,7 +263,7 @@ public class CommitLogStressTest
}
verifySizes(commitLog);
- commitLog.discardCompletedSegments(Schema.instance.getCFMetaData("Keyspace1", "Standard1").cfId,
+ commitLog.discardCompletedSegments(Schema.instance.getTableMetadata("Keyspace1", "Standard1").id,
CommitLogPosition.NONE, discardedPos);
threads.clear();
@@ -444,7 +445,7 @@ public class CommitLogStressTest
rl.acquire();
ByteBuffer key = randomBytes(16, rand);
- UpdateBuilder builder = UpdateBuilder.create(Schema.instance.getCFMetaData("Keyspace1", "Standard1"), Util.dk(key));
+ UpdateBuilder builder = UpdateBuilder.create(Schema.instance.getTableMetadata("Keyspace1", "Standard1"), Util.dk(key));
for (int ii = 0; ii < numCells; ii++)
{
int sz = randomSize ? rand.nextInt(cellSize) : cellSize;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/long/org/apache/cassandra/db/compaction/LongCompactionsTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/db/compaction/LongCompactionsTest.java b/test/long/org/apache/cassandra/db/compaction/LongCompactionsTest.java
index d684e11..f204303 100644
--- a/test/long/org/apache/cassandra/db/compaction/LongCompactionsTest.java
+++ b/test/long/org/apache/cassandra/db/compaction/LongCompactionsTest.java
@@ -28,7 +28,7 @@ import org.junit.Test;
import org.apache.cassandra.UpdateBuilder;
import org.apache.cassandra.SchemaLoader;
-import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.schema.Schema;
import org.apache.cassandra.Util;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.db.*;
@@ -108,7 +108,7 @@ public class LongCompactionsTest
{
String key = String.valueOf(j);
// last sstable has highest timestamps
- UpdateBuilder builder = UpdateBuilder.create(store.metadata, String.valueOf(j))
+ UpdateBuilder builder = UpdateBuilder.create(store.metadata(), String.valueOf(j))
.withTimestamp(k);
for (int i = 0; i < rowsPerPartition; i++)
builder.newRow(String.valueOf(i)).add("val", String.valueOf(i));
@@ -123,7 +123,7 @@ public class LongCompactionsTest
Thread.sleep(1000);
long start = System.nanoTime();
- final int gcBefore = (int) (System.currentTimeMillis() / 1000) - Schema.instance.getCFMetaData(KEYSPACE1, "Standard1").params.gcGraceSeconds;
+ final int gcBefore = (int) (System.currentTimeMillis() / 1000) - Schema.instance.getTableMetadata(KEYSPACE1, "Standard1").params.gcGraceSeconds;
try (LifecycleTransaction txn = store.getTracker().tryModify(sstables, OperationType.COMPACTION))
{
assert txn != null : "Cannot markCompacting all sstables";
@@ -146,7 +146,7 @@ public class LongCompactionsTest
cfs.clearUnsafe();
final int ROWS_PER_SSTABLE = 10;
- final int SSTABLES = cfs.metadata.params.minIndexInterval * 3 / ROWS_PER_SSTABLE;
+ final int SSTABLES = cfs.metadata().params.minIndexInterval * 3 / ROWS_PER_SSTABLE;
// disable compaction while flushing
cfs.disableAutoCompaction();
@@ -158,7 +158,7 @@ public class LongCompactionsTest
DecoratedKey key = Util.dk(String.valueOf(i % 2));
long timestamp = j * ROWS_PER_SSTABLE + i;
maxTimestampExpected = Math.max(timestamp, maxTimestampExpected);
- UpdateBuilder.create(cfs.metadata, key)
+ UpdateBuilder.create(cfs.metadata(), key)
.withTimestamp(timestamp)
.newRow(String.valueOf(i / 2)).add("val", ByteBufferUtil.EMPTY_BYTE_BUFFER)
.apply();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java b/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
index cf4aba2..3d18d85 100644
--- a/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
+++ b/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java
@@ -82,7 +82,7 @@ public class LongLeveledCompactionStrategyTest
for (int r = 0; r < rows; r++)
{
DecoratedKey key = Util.dk(String.valueOf(r));
- UpdateBuilder builder = UpdateBuilder.create(store.metadata, key);
+ UpdateBuilder builder = UpdateBuilder.create(store.metadata(), key);
for (int c = 0; c < columns; c++)
builder.newRow("column" + c).add("val", value);
@@ -160,7 +160,7 @@ public class LongLeveledCompactionStrategyTest
for (int r = 0; r < rows; r++)
{
DecoratedKey key = Util.dk(String.valueOf(r));
- UpdateBuilder builder = UpdateBuilder.create(store.metadata, key);
+ UpdateBuilder builder = UpdateBuilder.create(store.metadata(), key);
for (int c = 0; c < columns; c++)
builder.newRow("column" + c).add("val", value);
@@ -179,7 +179,7 @@ public class LongLeveledCompactionStrategyTest
for (int r = 0; r < 10; r++)
{
DecoratedKey key = Util.dk(String.valueOf(r));
- UpdateBuilder builder = UpdateBuilder.create(store.metadata, key);
+ UpdateBuilder builder = UpdateBuilder.create(store.metadata(), key);
for (int c = 0; c < 10; c++)
builder.newRow("column" + c).add("val", value);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/long/org/apache/cassandra/hints/HintsWriteThenReadTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/hints/HintsWriteThenReadTest.java b/test/long/org/apache/cassandra/hints/HintsWriteThenReadTest.java
index fd880cb..a905f9a 100644
--- a/test/long/org/apache/cassandra/hints/HintsWriteThenReadTest.java
+++ b/test/long/org/apache/cassandra/hints/HintsWriteThenReadTest.java
@@ -31,8 +31,8 @@ import com.google.common.collect.Iterables;
import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.schema.TableMetadata;
+import org.apache.cassandra.schema.Schema;
import org.apache.cassandra.db.Mutation;
import org.apache.cassandra.db.RowUpdateBuilder;
import org.apache.cassandra.db.rows.Cell;
@@ -167,7 +167,7 @@ public class HintsWriteThenReadTest
private static Mutation createMutation(int index, long timestamp)
{
- CFMetaData table = Schema.instance.getCFMetaData(KEYSPACE, TABLE);
+ TableMetadata table = Schema.instance.getTableMetadata(KEYSPACE, TABLE);
return new RowUpdateBuilder(table, timestamp, bytes(index))
.clustering(bytes(index))
.add("val", bytes(index))
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/long/org/apache/cassandra/streaming/LongStreamingTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/streaming/LongStreamingTest.java b/test/long/org/apache/cassandra/streaming/LongStreamingTest.java
index 1340224..a30d6c9 100644
--- a/test/long/org/apache/cassandra/streaming/LongStreamingTest.java
+++ b/test/long/org/apache/cassandra/streaming/LongStreamingTest.java
@@ -24,14 +24,13 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import com.google.common.io.Files;
-import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
-import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.schema.TableMetadataRef;
import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.schema.Schema;
import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.db.Keyspace;
@@ -110,9 +109,9 @@ public class LongStreamingTest
this.ks = keyspace;
}
- public CFMetaData getTableMetadata(String cfName)
+ public TableMetadataRef getTableMetadata(String cfName)
{
- return Schema.instance.getCFMetaData(ks, cfName);
+ return Schema.instance.getTableMetadataRef(ks, cfName);
}
}, new OutputHandler.SystemOutput(false, false));
@@ -137,9 +136,9 @@ public class LongStreamingTest
this.ks = keyspace;
}
- public CFMetaData getTableMetadata(String cfName)
+ public TableMetadataRef getTableMetadata(String cfName)
{
- return Schema.instance.getCFMetaData(ks, cfName);
+ return Schema.instance.getTableMetadataRef(ks, cfName);
}
}, new OutputHandler.SystemOutput(false, false));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/microbench/org/apache/cassandra/test/microbench/CompactionBench.java
----------------------------------------------------------------------
diff --git a/test/microbench/org/apache/cassandra/test/microbench/CompactionBench.java b/test/microbench/org/apache/cassandra/test/microbench/CompactionBench.java
index d8dfd66..41220a2 100644
--- a/test/microbench/org/apache/cassandra/test/microbench/CompactionBench.java
+++ b/test/microbench/org/apache/cassandra/test/microbench/CompactionBench.java
@@ -21,51 +21,16 @@ package org.apache.cassandra.test.microbench;
import java.io.File;
import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Collection;
import java.util.List;
import java.util.concurrent.*;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import com.google.common.util.concurrent.Uninterruptibles;
-
-import org.apache.cassandra.UpdateBuilder;
-import org.apache.cassandra.concurrent.StageManager;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.Config;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.Schema;
import org.apache.cassandra.cql3.CQLTester;
-import org.apache.cassandra.cql3.statements.ParsedStatement;
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.Directories;
import org.apache.cassandra.db.Keyspace;
-import org.apache.cassandra.db.Mutation;
-import org.apache.cassandra.db.compaction.CompactionManager;
-import org.apache.cassandra.dht.Murmur3Partitioner;
import org.apache.cassandra.io.sstable.Descriptor;
-import org.apache.cassandra.io.util.DataInputBuffer;
-import org.apache.cassandra.io.util.DataOutputBuffer;
-import org.apache.cassandra.io.util.DataOutputBufferFixed;
import org.apache.cassandra.io.util.FileUtils;
-import org.apache.cassandra.net.MessageIn;
-import org.apache.cassandra.net.MessageOut;
-import org.apache.cassandra.net.MessagingService;
-import org.apache.cassandra.schema.KeyspaceMetadata;
-import org.apache.cassandra.schema.KeyspaceParams;
-import org.apache.cassandra.service.CassandraDaemon;
-import org.apache.cassandra.service.StorageService;
-import org.apache.cassandra.transport.messages.ResultMessage;
-import org.apache.cassandra.utils.FBUtilities;
-import org.apache.hadoop.util.bloom.Key;
import org.openjdk.jmh.annotations.*;
-import org.openjdk.jmh.profile.StackProfiler;
-import org.openjdk.jmh.results.Result;
-import org.openjdk.jmh.results.RunResult;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/microbench/org/apache/cassandra/test/microbench/MutationBench.java
----------------------------------------------------------------------
diff --git a/test/microbench/org/apache/cassandra/test/microbench/MutationBench.java b/test/microbench/org/apache/cassandra/test/microbench/MutationBench.java
index 8c177cf..45ad258 100644
--- a/test/microbench/org/apache/cassandra/test/microbench/MutationBench.java
+++ b/test/microbench/org/apache/cassandra/test/microbench/MutationBench.java
@@ -25,10 +25,10 @@ import java.util.Collection;
import java.util.concurrent.*;
import org.apache.cassandra.UpdateBuilder;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.Config;
+import org.apache.cassandra.cql3.statements.CreateTableStatement;
+import org.apache.cassandra.schema.TableMetadata;
import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.schema.Schema;
import org.apache.cassandra.db.Mutation;
import org.apache.cassandra.dht.Murmur3Partitioner;
import org.apache.cassandra.io.util.DataInputBuffer;
@@ -91,16 +91,16 @@ public class MutationBench
public void setup() throws IOException
{
Schema.instance.load(KeyspaceMetadata.create(keyspace, KeyspaceParams.simple(1)));
- KeyspaceMetadata ksm = Schema.instance.getKSMetaData(keyspace);
- CFMetaData metadata = CFMetaData.compile("CREATE TABLE userpics " +
- "( userid bigint," +
- "picid bigint," +
- "commentid bigint, " +
- "PRIMARY KEY(userid, picid))", keyspace);
-
- Schema.instance.load(metadata);
- Schema.instance.setKeyspaceMetadata(ksm.withSwapped(ksm.tables.with(metadata)));
-
+ KeyspaceMetadata ksm = Schema.instance.getKeyspaceMetadata(keyspace);
+ TableMetadata metadata =
+ CreateTableStatement.parse("CREATE TABLE userpics " +
+ "( userid bigint," +
+ "picid bigint," +
+ "commentid bigint, " +
+ "PRIMARY KEY(userid, picid))", keyspace)
+ .build();
+
+ Schema.instance.load(ksm.withSwapped(ksm.tables.with(metadata)));
mutation = (Mutation)UpdateBuilder.create(metadata, 1L).newRow(1L).add("commentid", 32L).makeMutation();
messageOut = mutation.createMessage();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/microbench/org/apache/cassandra/test/microbench/ReadWriteTest.java
----------------------------------------------------------------------
diff --git a/test/microbench/org/apache/cassandra/test/microbench/ReadWriteTest.java b/test/microbench/org/apache/cassandra/test/microbench/ReadWriteTest.java
index 89973fd..066c289 100644
--- a/test/microbench/org/apache/cassandra/test/microbench/ReadWriteTest.java
+++ b/test/microbench/org/apache/cassandra/test/microbench/ReadWriteTest.java
@@ -19,44 +19,13 @@
package org.apache.cassandra.test.microbench;
-import java.io.File;
import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Collection;
-import java.util.List;
import java.util.concurrent.*;
-import org.apache.cassandra.UpdateBuilder;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.Config;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.Schema;
import org.apache.cassandra.cql3.CQLTester;
-import org.apache.cassandra.cql3.statements.ParsedStatement;
import org.apache.cassandra.db.ColumnFamilyStore;
-import org.apache.cassandra.db.Directories;
import org.apache.cassandra.db.Keyspace;
-import org.apache.cassandra.db.Mutation;
-import org.apache.cassandra.dht.Murmur3Partitioner;
-import org.apache.cassandra.io.util.DataInputBuffer;
-import org.apache.cassandra.io.util.DataOutputBuffer;
-import org.apache.cassandra.io.util.DataOutputBufferFixed;
-import org.apache.cassandra.io.util.FileUtils;
-import org.apache.cassandra.net.MessageIn;
-import org.apache.cassandra.net.MessageOut;
-import org.apache.cassandra.net.MessagingService;
-import org.apache.cassandra.schema.KeyspaceMetadata;
-import org.apache.cassandra.schema.KeyspaceParams;
-import org.apache.cassandra.service.CassandraDaemon;
-import org.apache.cassandra.service.StorageService;
-import org.apache.cassandra.transport.messages.ResultMessage;
import org.openjdk.jmh.annotations.*;
-import org.openjdk.jmh.profile.StackProfiler;
-import org.openjdk.jmh.results.Result;
-import org.openjdk.jmh.results.RunResult;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/unit/org/apache/cassandra/MockSchema.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/MockSchema.java b/test/unit/org/apache/cassandra/MockSchema.java
deleted file mode 100644
index 804bccb..0000000
--- a/test/unit/org/apache/cassandra/MockSchema.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.cassandra;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import com.google.common.collect.ImmutableSet;
-
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.db.*;
-import org.apache.cassandra.db.marshal.UTF8Type;
-import org.apache.cassandra.dht.Murmur3Partitioner;
-import org.apache.cassandra.io.sstable.Component;
-import org.apache.cassandra.io.sstable.Descriptor;
-import org.apache.cassandra.io.sstable.IndexSummary;
-import org.apache.cassandra.io.sstable.format.SSTableFormat;
-import org.apache.cassandra.io.sstable.format.SSTableReader;
-import org.apache.cassandra.io.sstable.metadata.MetadataCollector;
-import org.apache.cassandra.io.sstable.metadata.MetadataType;
-import org.apache.cassandra.io.sstable.metadata.StatsMetadata;
-import org.apache.cassandra.io.util.FileUtils;
-import org.apache.cassandra.io.util.Memory;
-import org.apache.cassandra.io.util.FileHandle;
-import org.apache.cassandra.schema.CachingParams;
-import org.apache.cassandra.schema.KeyspaceMetadata;
-import org.apache.cassandra.schema.KeyspaceParams;
-import org.apache.cassandra.utils.AlwaysPresentFilter;
-import org.apache.cassandra.utils.ByteBufferUtil;
-
-public class MockSchema
-{
- static
- {
- Memory offsets = Memory.allocate(4);
- offsets.setInt(0, 0);
- indexSummary = new IndexSummary(Murmur3Partitioner.instance, offsets, 0, Memory.allocate(4), 0, 0, 0, 1);
- }
- private static final AtomicInteger id = new AtomicInteger();
- public static final Keyspace ks = Keyspace.mockKS(KeyspaceMetadata.create("mockks", KeyspaceParams.simpleTransient(1)));
-
- public static final IndexSummary indexSummary;
- private static final FileHandle RANDOM_ACCESS_READER_FACTORY = new FileHandle.Builder(temp("mocksegmentedfile").getAbsolutePath()).complete();
-
- public static Memtable memtable(ColumnFamilyStore cfs)
- {
- return new Memtable(cfs.metadata);
- }
-
- public static SSTableReader sstable(int generation, ColumnFamilyStore cfs)
- {
- return sstable(generation, false, cfs);
- }
-
- public static SSTableReader sstable(int generation, boolean keepRef, ColumnFamilyStore cfs)
- {
- return sstable(generation, 0, keepRef, cfs);
- }
-
- public static SSTableReader sstable(int generation, int size, ColumnFamilyStore cfs)
- {
- return sstable(generation, size, false, cfs);
- }
-
- public static SSTableReader sstable(int generation, int size, boolean keepRef, ColumnFamilyStore cfs)
- {
- Descriptor descriptor = new Descriptor(cfs.getDirectories().getDirectoryForNewSSTables(),
- cfs.keyspace.getName(),
- cfs.getColumnFamilyName(),
- generation, SSTableFormat.Type.BIG);
- Set<Component> components = ImmutableSet.of(Component.DATA, Component.PRIMARY_INDEX, Component.FILTER, Component.TOC);
- for (Component component : components)
- {
- File file = new File(descriptor.filenameFor(component));
- try
- {
- file.createNewFile();
- }
- catch (IOException e)
- {
- }
- }
- if (size > 0)
- {
- try
- {
- File file = new File(descriptor.filenameFor(Component.DATA));
- try (RandomAccessFile raf = new RandomAccessFile(file, "rw"))
- {
- raf.setLength(size);
- }
- }
- catch (IOException e)
- {
- throw new RuntimeException(e);
- }
- }
- SerializationHeader header = SerializationHeader.make(cfs.metadata, Collections.emptyList());
- StatsMetadata metadata = (StatsMetadata) new MetadataCollector(cfs.metadata.comparator)
- .finalizeMetadata(cfs.metadata.partitioner.getClass().getCanonicalName(), 0.01f, -1, header)
- .get(MetadataType.STATS);
- SSTableReader reader = SSTableReader.internalOpen(descriptor, components, cfs.metadata,
- RANDOM_ACCESS_READER_FACTORY.sharedCopy(), RANDOM_ACCESS_READER_FACTORY.sharedCopy(), indexSummary.sharedCopy(),
- new AlwaysPresentFilter(), 1L, metadata, SSTableReader.OpenReason.NORMAL, header);
- reader.first = reader.last = readerBounds(generation);
- if (!keepRef)
- reader.selfRef().release();
- return reader;
- }
-
- public static ColumnFamilyStore newCFS()
- {
- return newCFS(ks.getName());
- }
-
- public static ColumnFamilyStore newCFS(String ksname)
- {
- String cfname = "mockcf" + (id.incrementAndGet());
- CFMetaData metadata = newCFMetaData(ksname, cfname);
- return new ColumnFamilyStore(ks, cfname, 0, metadata, new Directories(metadata), false, false, false);
- }
-
- public static CFMetaData newCFMetaData(String ksname, String cfname)
- {
- CFMetaData metadata = CFMetaData.Builder.create(ksname, cfname)
- .addPartitionKey("key", UTF8Type.instance)
- .addClusteringColumn("col", UTF8Type.instance)
- .addRegularColumn("value", UTF8Type.instance)
- .withPartitioner(Murmur3Partitioner.instance)
- .build();
- metadata.caching(CachingParams.CACHE_NOTHING);
- return metadata;
- }
-
- public static BufferDecoratedKey readerBounds(int generation)
- {
- return new BufferDecoratedKey(new Murmur3Partitioner.LongToken(generation), ByteBufferUtil.EMPTY_BYTE_BUFFER);
- }
-
- private static File temp(String id)
- {
- try
- {
- File file = File.createTempFile(id, "tmp");
- file.deleteOnExit();
- return file;
- }
- catch (IOException e)
- {
- throw new RuntimeException(e);
- }
- }
-
- public static void cleanup()
- {
- // clean up data directory which are stored as data directory/keyspace/data files
- for (String dirName : DatabaseDescriptor.getAllDataFileLocations())
- {
- File dir = new File(dirName);
- if (!dir.exists())
- continue;
- String[] children = dir.list();
- for (String child : children)
- FileUtils.deleteRecursive(new File(dir, child));
- }
- }
-}