merge from 1.2
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1d6bed3b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1d6bed3b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1d6bed3b Branch: refs/heads/trunk Commit: 1d6bed3ba8b19fe1c618155a5d7806b9bb4c6c4e Parents: 369415c ab8a28e Author: Jonathan Ellis <jbel...@apache.org> Authored: Tue Jul 30 15:08:18 2013 -0500 Committer: Jonathan Ellis <jbel...@apache.org> Committed: Tue Jul 30 15:08:18 2013 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableReader.java | 2 +- .../io/sstable/SSTableSimpleUnsortedWriter.java | 11 ++- .../io/util/CompressedPoolingSegmentedFile.java | 9 +- .../io/util/CompressedSegmentedFile.java | 7 +- .../cassandra/service/StorageService.java | 2 - .../cassandra/io/sstable/SSTableLoaderTest.java | 89 ++++++++++++++++++++ 7 files changed, 112 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d6bed3b/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index 83310ed,8578855..a9cb47c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,12 -1,5 +1,13 @@@ -1.2.9 +2.0.0-rc1 + * fix potential spurious wakeup in AsyncOneResponse (CASSANDRA-5690) + * fix schema-related trigger issues (CASSANDRA-5774) + * Better validation when accessing CQL3 table from thrift (CASSANDRA-5138) + * Fix assertion error during repair (CASSANDRA-5801) + * Fix range tombstone bug (CASSANDRA-5805) + * DC-local CAS (CASSANDRA-5797) + * Add a native_protocol_version column to the system.local table (CASSANRDA-5819) +Merged from 1.2: + * fix bulk-loading compressed sstables (CASSANDRA-5820) * (Hadoop) fix quoting in CqlPagingRecordReader and CqlRecordWriter (CASSANDRA-5824) * update default LCS sstable size to 160MB (CASSANDRA-5727) http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d6bed3b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d6bed3b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d6bed3b/src/java/org/apache/cassandra/io/util/CompressedPoolingSegmentedFile.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d6bed3b/src/java/org/apache/cassandra/service/StorageService.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/service/StorageService.java index bec8c8d,26c4d1c..d0581fb --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@@ -3526,7 -3822,7 +3526,6 @@@ public class StorageService extends Not SSTableLoader.Client client = new SSTableLoader.Client() { -- @Override public void init(String keyspace) { try @@@ -3545,10 -3841,10 +3544,9 @@@ } } -- @Override - public boolean validateColumnFamily(String keyspace, String cfName) + public CFMetaData getCFMetaData(String keyspace, String cfName) { - return Schema.instance.getCFMetaData(keyspace, cfName) != null; + return Schema.instance.getCFMetaData(keyspace, cfName); } }; http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d6bed3b/test/unit/org/apache/cassandra/io/sstable/SSTableLoaderTest.java ---------------------------------------------------------------------- diff --cc test/unit/org/apache/cassandra/io/sstable/SSTableLoaderTest.java index 0000000,8fa886e..236ee2d mode 000000,100644..100644 --- a/test/unit/org/apache/cassandra/io/sstable/SSTableLoaderTest.java +++ b/test/unit/org/apache/cassandra/io/sstable/SSTableLoaderTest.java @@@ -1,0 -1,98 +1,89 @@@ + /* + * 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.io.sstable; + + import java.io.File; + import java.util.List; + + import com.google.common.io.Files; + import org.junit.BeforeClass; + import org.junit.Test; + + import org.apache.cassandra.SchemaLoader; + import org.apache.cassandra.Util; + import org.apache.cassandra.config.CFMetaData; + import org.apache.cassandra.config.Schema; + import org.apache.cassandra.db.DecoratedKey; ++import org.apache.cassandra.db.Keyspace; + import org.apache.cassandra.db.Row; -import org.apache.cassandra.db.Table; + import org.apache.cassandra.dht.Range; + import org.apache.cassandra.dht.Token; -import org.apache.cassandra.exceptions.ConfigurationException; + import org.apache.cassandra.service.StorageService; + import org.apache.cassandra.utils.ByteBufferUtil; + import org.apache.cassandra.utils.FBUtilities; + import org.apache.cassandra.utils.OutputHandler; + + import static junit.framework.Assert.assertEquals; + + public class SSTableLoaderTest extends SchemaLoader + { + @BeforeClass + public static void setup() throws Exception + { + StorageService.instance.initServer(); + } + + @Test + public void testLoadingSSTable() throws Exception + { + File tempdir = Files.createTempDir(); + File dataDir = new File(tempdir.getAbsolutePath() + File.separator + "Keyspace1" + File.separator + "Standard1"); + assert dataDir.mkdirs(); + CFMetaData cfmeta = Schema.instance.getCFMetaData("Keyspace1", "Standard1"); + SSTableSimpleUnsortedWriter writer = new SSTableSimpleUnsortedWriter(dataDir, + cfmeta, + StorageService.getPartitioner(), + 1); + DecoratedKey key = Util.dk("key1"); + writer.newRow(key.key); + writer.addColumn(ByteBufferUtil.bytes("col1"), ByteBufferUtil.bytes(100), 1); + writer.close(); + + SSTableLoader loader = new SSTableLoader(dataDir, new SSTableLoader.Client() + { - @Override + public void init(String keyspace) + { - try - { - for (Range<Token> range : StorageService.instance.getLocalRanges("Keyspace1")) - addRangeForEndpoint(range, FBUtilities.getBroadcastAddress()); - setPartitioner(StorageService.getPartitioner()); - } catch (ConfigurationException e) - { - throw new RuntimeException(e); - } ++ for (Range<Token> range : StorageService.instance.getLocalRanges("Keyspace1")) ++ addRangeForEndpoint(range, FBUtilities.getBroadcastAddress()); ++ setPartitioner(StorageService.getPartitioner()); + } + - @Override - public boolean validateColumnFamily(String keyspace, String cfName) ++ public CFMetaData getCFMetaData(String keyspace, String cfName) + { - return true; ++ return Schema.instance.getCFMetaData(keyspace, cfName); + } + }, new OutputHandler.SystemOutput(false, false)); + + loader.stream().get(); + - List<Row> rows = Util.getRangeSlice(Table.open("Keyspace1").getColumnFamilyStore("Standard1")); ++ List<Row> rows = Util.getRangeSlice(Keyspace.open("Keyspace1").getColumnFamilyStore("Standard1")); + assertEquals(1, rows.size()); + assertEquals(key, rows.get(0).key); + assertEquals(ByteBufferUtil.bytes(100), rows.get(0).cf.getColumn(ByteBufferUtil.bytes("col1")).value()); + } + }