Repository: cassandra Updated Branches: refs/heads/trunk 3580f6c05 -> af3fe39dc
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/test/unit/org/apache/cassandra/triggers/TriggersTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/triggers/TriggersTest.java b/test/unit/org/apache/cassandra/triggers/TriggersTest.java index 37638c9..52cebc9 100644 --- a/test/unit/org/apache/cassandra/triggers/TriggersTest.java +++ b/test/unit/org/apache/cassandra/triggers/TriggersTest.java @@ -17,17 +17,15 @@ */ package org.apache.cassandra.triggers; -import java.net.InetAddress; import java.util.Collection; import java.util.Collections; -import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.apache.cassandra.SchemaLoader; -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.*; @@ -39,7 +37,6 @@ import org.apache.cassandra.exceptions.RequestExecutionException; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.utils.FBUtilities; -import static org.apache.cassandra.utils.ByteBufferUtil.bytes; import static org.apache.cassandra.utils.ByteBufferUtil.toInt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -230,7 +227,7 @@ public class TriggersTest public Collection<Mutation> augment(Partition partition) { - RowUpdateBuilder update = new RowUpdateBuilder(Schema.instance.getCFMetaData(ksName, otherCf), FBUtilities.timestampMicros(), partition.partitionKey().getKey()); + RowUpdateBuilder update = new RowUpdateBuilder(Schema.instance.getTableMetadata(ksName, otherCf), FBUtilities.timestampMicros(), partition.partitionKey().getKey()); update.add("v2", 999); return Collections.singletonList(update.build()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/tools/stress/src/org/apache/cassandra/io/sstable/StressCQLSSTableWriter.java ---------------------------------------------------------------------- diff --git a/tools/stress/src/org/apache/cassandra/io/sstable/StressCQLSSTableWriter.java b/tools/stress/src/org/apache/cassandra/io/sstable/StressCQLSSTableWriter.java index 41a0d6f..89fd5f9 100644 --- a/tools/stress/src/org/apache/cassandra/io/sstable/StressCQLSSTableWriter.java +++ b/tools/stress/src/org/apache/cassandra/io/sstable/StressCQLSSTableWriter.java @@ -24,12 +24,15 @@ import java.nio.ByteBuffer; import java.util.*; import java.util.stream.Collectors; +import org.apache.commons.lang3.ArrayUtils; + import com.datastax.driver.core.ProtocolVersion; import com.datastax.driver.core.TypeCodec; import org.antlr.runtime.RecognitionException; -import org.apache.cassandra.config.CFMetaData; +import org.apache.cassandra.schema.TableId; +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.cql3.CQLFragmentParser; import org.apache.cassandra.cql3.ColumnSpecification; import org.apache.cassandra.cql3.CqlParser; @@ -51,6 +54,7 @@ import org.apache.cassandra.exceptions.SyntaxException; import org.apache.cassandra.io.sstable.format.SSTableFormat; import org.apache.cassandra.schema.KeyspaceMetadata; import org.apache.cassandra.schema.KeyspaceParams; +import org.apache.cassandra.schema.TableMetadataRef; import org.apache.cassandra.schema.Types; import org.apache.cassandra.service.ClientState; import org.apache.cassandra.utils.ByteBufferUtil; @@ -246,7 +250,7 @@ public class StressCQLSSTableWriter implements Closeable long now = System.currentTimeMillis() * 1000; // Note that we asks indexes to not validate values (the last 'false' arg below) because that triggers a 'Keyspace.open' // and that forces a lot of initialization that we don't want. - UpdateParameters params = new UpdateParameters(insert.cfm, + UpdateParameters params = new UpdateParameters(insert.metadata(), insert.updatedColumns(), options, insert.getTimestamp(now, options), @@ -307,7 +311,7 @@ public class StressCQLSSTableWriter implements Closeable */ public com.datastax.driver.core.UserType getUDType(String dataType) { - KeyspaceMetadata ksm = Schema.instance.getKSMetaData(insert.keyspace()); + KeyspaceMetadata ksm = Schema.instance.getKeyspaceMetadata(insert.keyspace()); UserType userType = ksm.types.getNullable(ByteBufferUtil.bytes(dataType)); return (com.datastax.driver.core.UserType) UDHelper.driverType(userType); } @@ -579,13 +583,13 @@ public class StressCQLSSTableWriter implements Closeable private static void createTypes(String keyspace, List<CreateTypeStatement> typeStatements) { - KeyspaceMetadata ksm = Schema.instance.getKSMetaData(keyspace); + KeyspaceMetadata ksm = Schema.instance.getKeyspaceMetadata(keyspace); Types.RawBuilder builder = Types.rawBuilder(keyspace); for (CreateTypeStatement st : typeStatements) st.addToRawBuilder(builder); ksm = ksm.withSwapped(builder.build()); - Schema.instance.setKeyspaceMetadata(ksm); + Schema.instance.load(ksm); } public static ColumnFamilyStore createOfflineTable(String schema, List<File> directoryList) @@ -601,38 +605,40 @@ public class StressCQLSSTableWriter implements Closeable { String keyspace = schemaStatement.keyspace(); - if (Schema.instance.getKSMetaData(keyspace) == null) + if (Schema.instance.getKeyspaceMetadata(keyspace) == null) Schema.instance.load(KeyspaceMetadata.create(keyspace, KeyspaceParams.simple(1))); createTypes(keyspace, typeStatements); - KeyspaceMetadata ksm = Schema.instance.getKSMetaData(keyspace); + KeyspaceMetadata ksm = Schema.instance.getKeyspaceMetadata(keyspace); - CFMetaData cfMetaData = ksm.tables.getNullable(schemaStatement.columnFamily()); - assert cfMetaData == null; + assert ksm.tables.getNullable(schemaStatement.columnFamily()) == null; CreateTableStatement statement = (CreateTableStatement) schemaStatement.prepare(ksm.types).statement; statement.validate(ClientState.forInternalCalls()); - //Build metatdata with a portable cfId - cfMetaData = statement.metadataBuilder() - .withId(CFMetaData.generateLegacyCfId(keyspace, statement.columnFamily())) - .build() - .params(statement.params()); + //Build metadata with a portable tableId + TableMetadata tableMetadata = statement.builder() + .id(deterministicId(statement.keyspace(), statement.columnFamily())) + .build(); Keyspace.setInitialized(); - Directories directories = new Directories(cfMetaData, directoryList.stream().map(Directories.DataDirectory::new).collect(Collectors.toList())); + Directories directories = new Directories(tableMetadata, directoryList.stream().map(Directories.DataDirectory::new).collect(Collectors.toList())); Keyspace ks = Keyspace.openWithoutSSTables(keyspace); - ColumnFamilyStore cfs = ColumnFamilyStore.createColumnFamilyStore(ks, cfMetaData.cfName, cfMetaData, directories, false, false, true); + ColumnFamilyStore cfs = ColumnFamilyStore.createColumnFamilyStore(ks, tableMetadata.name, TableMetadataRef.forOfflineTools(tableMetadata), directories, false, false, true); ks.initCfCustom(cfs); - Schema.instance.load(cfs.metadata); - Schema.instance.setKeyspaceMetadata(ksm.withSwapped(ksm.tables.with(cfs.metadata))); + Schema.instance.load(ksm.withSwapped(ksm.tables.with(cfs.metadata()))); return cfs; } + private static TableId deterministicId(String keyspace, String table) + { + return TableId.fromUUID(UUID.nameUUIDFromBytes(ArrayUtils.addAll(keyspace.getBytes(), table.getBytes()))); + } + /** * Prepares insert statement for writing data to SSTable * http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/tools/stress/src/org/apache/cassandra/stress/StressProfile.java ---------------------------------------------------------------------- diff --git a/tools/stress/src/org/apache/cassandra/stress/StressProfile.java b/tools/stress/src/org/apache/cassandra/stress/StressProfile.java index e15e0ba..3662632 100644 --- a/tools/stress/src/org/apache/cassandra/stress/StressProfile.java +++ b/tools/stress/src/org/apache/cassandra/stress/StressProfile.java @@ -35,16 +35,16 @@ import com.google.common.base.Function; import com.google.common.util.concurrent.Uninterruptibles; import com.datastax.driver.core.*; +import com.datastax.driver.core.TableMetadata; import com.datastax.driver.core.exceptions.AlreadyExistsException; import org.antlr.runtime.RecognitionException; -import org.apache.cassandra.config.CFMetaData; -import org.apache.cassandra.config.ColumnDefinition; import org.apache.cassandra.cql3.CQLFragmentParser; import org.apache.cassandra.cql3.CqlParser; import org.apache.cassandra.cql3.QueryProcessor; import org.apache.cassandra.cql3.statements.CreateTableStatement; import org.apache.cassandra.exceptions.RequestValidationException; import org.apache.cassandra.exceptions.SyntaxException; +import org.apache.cassandra.schema.ColumnMetadata; import org.apache.cassandra.stress.generate.*; import org.apache.cassandra.stress.generate.values.*; import org.apache.cassandra.stress.operations.userdefined.TokenRangeQuery; @@ -300,7 +300,7 @@ public class StressProfile implements Serializable throw new RuntimeException("Unable to find table " + keyspaceName + "." + tableName); //Fill in missing column configs - for (ColumnMetadata col : metadata.getColumns()) + for (com.datastax.driver.core.ColumnMetadata col : metadata.getColumns()) { if (columnConfigs.containsKey(col.getName())) continue; @@ -393,31 +393,31 @@ public class StressProfile implements Serializable public PartitionGenerator getOfflineGenerator() { - CFMetaData cfMetaData = CFMetaData.compile(tableCql, keyspaceName); + org.apache.cassandra.schema.TableMetadata metadata = CreateTableStatement.parse(tableCql, keyspaceName).build(); //Add missing column configs - Iterator<ColumnDefinition> it = cfMetaData.allColumnsInSelectOrder(); + Iterator<ColumnMetadata> it = metadata.allColumnsInSelectOrder(); while (it.hasNext()) { - ColumnDefinition c = it.next(); + ColumnMetadata c = it.next(); if (!columnConfigs.containsKey(c.name.toString())) columnConfigs.put(c.name.toString(), new GeneratorConfig(seedStr + c.name.toString(), null, null, null)); } - List<Generator> partitionColumns = cfMetaData.partitionKeyColumns().stream() - .map(c -> new ColumnInfo(c.name.toString(), c.type.asCQL3Type().toString(), "", columnConfigs.get(c.name.toString()))) - .map(c -> c.getGenerator()) - .collect(Collectors.toList()); + List<Generator> partitionColumns = metadata.partitionKeyColumns().stream() + .map(c -> new ColumnInfo(c.name.toString(), c.type.asCQL3Type().toString(), "", columnConfigs.get(c.name.toString()))) + .map(c -> c.getGenerator()) + .collect(Collectors.toList()); - List<Generator> clusteringColumns = cfMetaData.clusteringColumns().stream() - .map(c -> new ColumnInfo(c.name.toString(), c.type.asCQL3Type().toString(), "", columnConfigs.get(c.name.toString()))) - .map(c -> c.getGenerator()) - .collect(Collectors.toList()); + List<Generator> clusteringColumns = metadata.clusteringColumns().stream() + .map(c -> new ColumnInfo(c.name.toString(), c.type.asCQL3Type().toString(), "", columnConfigs.get(c.name.toString()))) + .map(c -> c.getGenerator()) + .collect(Collectors.toList()); - List<Generator> regularColumns = com.google.common.collect.Lists.newArrayList(cfMetaData.partitionColumns().selectOrderIterator()).stream() - .map(c -> new ColumnInfo(c.name.toString(), c.type.asCQL3Type().toString(), "", columnConfigs.get(c.name.toString()))) - .map(c -> c.getGenerator()) - .collect(Collectors.toList()); + List<Generator> regularColumns = com.google.common.collect.Lists.newArrayList(metadata.regularAndStaticColumns().selectOrderIterator()).stream() + .map(c -> new ColumnInfo(c.name.toString(), c.type.asCQL3Type().toString(), "", columnConfigs.get(c.name.toString()))) + .map(c -> c.getGenerator()) + .collect(Collectors.toList()); return new PartitionGenerator(partitionColumns, clusteringColumns, regularColumns, PartitionGenerator.Order.ARBITRARY); } @@ -434,14 +434,14 @@ public class StressProfile implements Serializable { assert tableCql != null; - CFMetaData cfMetaData = CFMetaData.compile(tableCql, keyspaceName); + org.apache.cassandra.schema.TableMetadata metadata = CreateTableStatement.parse(tableCql, keyspaceName).build(); - List<ColumnDefinition> allColumns = com.google.common.collect.Lists.newArrayList(cfMetaData.allColumnsInSelectOrder()); + List<ColumnMetadata> allColumns = com.google.common.collect.Lists.newArrayList(metadata.allColumnsInSelectOrder()); StringBuilder sb = new StringBuilder(); sb.append("INSERT INTO ").append(quoteIdentifier(keyspaceName)).append(".").append(quoteIdentifier(tableName)).append(" ("); StringBuilder value = new StringBuilder(); - for (ColumnDefinition c : allColumns) + for (ColumnMetadata c : allColumns) { sb.append(quoteIdentifier(c.name.toString())).append(", "); value.append("?, "); @@ -481,8 +481,8 @@ public class StressProfile implements Serializable { maybeLoadSchemaInfo(settings); - Set<ColumnMetadata> keyColumns = com.google.common.collect.Sets.newHashSet(tableMetaData.getPrimaryKey()); - Set<ColumnMetadata> allColumns = com.google.common.collect.Sets.newHashSet(tableMetaData.getColumns()); + Set<com.datastax.driver.core.ColumnMetadata> keyColumns = com.google.common.collect.Sets.newHashSet(tableMetaData.getPrimaryKey()); + Set<com.datastax.driver.core.ColumnMetadata> allColumns = com.google.common.collect.Sets.newHashSet(tableMetaData.getColumns()); boolean isKeyOnlyTable = (keyColumns.size() == allColumns.size()); //With compact storage if (!isKeyOnlyTable && (keyColumns.size() == (allColumns.size() - 1))) @@ -490,7 +490,7 @@ public class StressProfile implements Serializable com.google.common.collect.Sets.SetView diff = com.google.common.collect.Sets.difference(allColumns, keyColumns); for (Object obj : diff) { - ColumnMetadata col = (ColumnMetadata)obj; + com.datastax.driver.core.ColumnMetadata col = (com.datastax.driver.core.ColumnMetadata)obj; isKeyOnlyTable = col.getName().isEmpty(); break; } @@ -507,7 +507,7 @@ public class StressProfile implements Serializable boolean firstCol = true; boolean firstPred = true; - for (ColumnMetadata c : tableMetaData.getColumns()) { + for (com.datastax.driver.core.ColumnMetadata c : tableMetaData.getColumns()) { if (keyColumns.contains(c)) { if (firstPred) @@ -545,7 +545,7 @@ public class StressProfile implements Serializable { sb.append("INSERT INTO ").append(quoteIdentifier(tableName)).append(" ("); StringBuilder value = new StringBuilder(); - for (ColumnMetadata c : tableMetaData.getPrimaryKey()) + for (com.datastax.driver.core.ColumnMetadata c : tableMetaData.getPrimaryKey()) { sb.append(quoteIdentifier(c.getName())).append(", "); value.append("?, "); @@ -655,17 +655,17 @@ public class StressProfile implements Serializable private GeneratorFactory() { - Set<ColumnMetadata> keyColumns = com.google.common.collect.Sets.newHashSet(tableMetaData.getPrimaryKey()); + Set<com.datastax.driver.core.ColumnMetadata> keyColumns = com.google.common.collect.Sets.newHashSet(tableMetaData.getPrimaryKey()); - for (ColumnMetadata metadata : tableMetaData.getPartitionKey()) + for (com.datastax.driver.core.ColumnMetadata metadata : tableMetaData.getPartitionKey()) partitionKeys.add(new ColumnInfo(metadata.getName(), metadata.getType().getName().toString(), metadata.getType().isCollection() ? metadata.getType().getTypeArguments().get(0).getName().toString() : "", columnConfigs.get(metadata.getName()))); - for (ColumnMetadata metadata : tableMetaData.getClusteringColumns()) + for (com.datastax.driver.core.ColumnMetadata metadata : tableMetaData.getClusteringColumns()) clusteringColumns.add(new ColumnInfo(metadata.getName(), metadata.getType().getName().toString(), metadata.getType().isCollection() ? metadata.getType().getTypeArguments().get(0).getName().toString() : "", columnConfigs.get(metadata.getName()))); - for (ColumnMetadata metadata : tableMetaData.getColumns()) + for (com.datastax.driver.core.ColumnMetadata metadata : tableMetaData.getColumns()) if (!keyColumns.contains(metadata)) valueColumns.add(new ColumnInfo(metadata.getName(), metadata.getType().getName().toString(), metadata.getType().isCollection() ? metadata.getType().getTypeArguments().get(0).getName().toString() : "", http://git-wip-us.apache.org/repos/asf/cassandra/blob/af3fe39d/tools/stress/src/org/apache/cassandra/stress/settings/OptionCompaction.java ---------------------------------------------------------------------- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/OptionCompaction.java b/tools/stress/src/org/apache/cassandra/stress/settings/OptionCompaction.java index 11d5403..c90a14c 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/OptionCompaction.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/OptionCompaction.java @@ -23,8 +23,8 @@ import java.util.Map; import com.google.common.base.Function; -import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.exceptions.ConfigurationException; +import org.apache.cassandra.schema.CompactionParams; /** * For specifying replication options @@ -67,8 +67,9 @@ class OptionCompaction extends OptionMulti { try { - CFMetaData.createCompactionStrategy(name); - } catch (ConfigurationException e) + CompactionParams.classFromName(name); + } + catch (ConfigurationException e) { throw new IllegalArgumentException("Invalid compaction strategy: " + name); }