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());
+     }
+ }

Reply via email to