diff --git a/CHANGES.txt b/CHANGES.txt
index 2b5bf79550..578da355e4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -6,15 +6,10 @@
* Remove leveled json manifest migration code (CASSANDRA-5996)
-2.0.2
+2.0.1
* Improve memory use defaults (CASSANDRA-5069)
* Make ThriftServer more easlly extensible (CASSANDRA-6058)
* Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062)
-Merged from 1.2:
- * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
-
-
-2.0.1
* add file_cache_size_in_mb setting (CASSANDRA-5661)
* Improve error message when yaml contains invalid properties (CASSANDRA-5958)
* Improve leveled compaction's ability to find non-overlapping L0 compactions
@@ -44,6 +39,7 @@ Merged from 1.2:
* Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050)
* Support named bind variables in CQL (CASSANDRA-6033)
Merged from 1.2:
+ * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
* Avoid second-guessing out-of-space state (CASSANDRA-5605)
* Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982)
* (Hadoop) Fix CQLRW for thrift tables (CASSANDRA-6002)
diff --git a/build.xml b/build.xml
index d0bb1c512e..5be37ca148 100644
--- a/build.xml
+++ b/build.xml
@@ -355,7 +355,7 @@
-
+
@@ -456,7 +456,7 @@
-
+
diff --git a/lib/thrift-server-0.3.0.jar b/lib/thrift-server-0.3.2.jar
similarity index 71%
rename from lib/thrift-server-0.3.0.jar
rename to lib/thrift-server-0.3.2.jar
index 3c93bb988f..5b03c4dc7c 100644
Binary files a/lib/thrift-server-0.3.0.jar and b/lib/thrift-server-0.3.2.jar differ
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index e0c096fdcf..4da579caa7 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
@@ -160,8 +160,17 @@ public class SSTableReader extends SSTable implements Closeable
partitioner,
System.currentTimeMillis(),
sstableMetadata);
- // don't save index summary to disk if we needed to build one
- sstable.load(false, false);
+
+ // special implementation of load to use non-pooled SegmentedFile builders
+ SegmentedFile.Builder ibuilder = new BufferedSegmentedFile.Builder();
+ SegmentedFile.Builder dbuilder = sstable.compression
+ ? new CompressedSegmentedFile.Builder()
+ : new BufferedSegmentedFile.Builder();
+ if (!loadSummary(sstable, ibuilder, dbuilder, sstable.metadata))
+ sstable.buildSummary(false, ibuilder, dbuilder, false);
+ sstable.ifile = ibuilder.complete(sstable.descriptor.filenameFor(Component.PRIMARY_INDEX));
+ sstable.dfile = dbuilder.complete(sstable.descriptor.filenameFor(Component.DATA));
+
sstable.bf = FilterFactory.AlwaysPresent;
return sstable;
}
@@ -411,7 +420,6 @@ public class SSTableReader extends SSTable implements Closeable
? SegmentedFile.getCompressedBuilder()
: SegmentedFile.getBuilder(DatabaseDescriptor.getDiskAccessMode());
-
boolean summaryLoaded = loadSummary(this, ibuilder, dbuilder, metadata);
if (recreateBloomFilter || !summaryLoaded)
buildSummary(recreateBloomFilter, ibuilder, dbuilder, summaryLoaded);
diff --git a/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java b/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java
index 49972c81fb..790b42b99b 100644
--- a/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java
+++ b/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java
@@ -19,7 +19,7 @@ package org.apache.cassandra.io.util;
import java.io.File;
-public class BufferedSegmentedFile extends PoolingSegmentedFile
+public class BufferedSegmentedFile extends SegmentedFile
{
public BufferedSegmentedFile(String path, long length)
{
@@ -28,20 +28,11 @@ public class BufferedSegmentedFile extends PoolingSegmentedFile
public static class Builder extends SegmentedFile.Builder
{
- /**
- * Adds a position that would be a safe place for a segment boundary in the file. For a block/row based file
- * format, safe boundaries are block/row edges.
- * @param boundary The absolute position of the potential boundary in the file.
- */
public void addPotentialBoundary(long boundary)
{
// only one segment in a standard-io file
}
- /**
- * Called after all potential boundaries have been added to apply this Builder to a concrete file on disk.
- * @param path The file on disk.
- */
public SegmentedFile complete(String path)
{
long length = new File(path).length();
@@ -49,8 +40,14 @@ public class BufferedSegmentedFile extends PoolingSegmentedFile
}
}
- protected RandomAccessReader createReader(String path)
+ public FileDataInput getSegment(long position)
+ {
+ RandomAccessReader reader = RandomAccessReader.open(new File(path));
+ reader.seek(position);
+ return reader;
+ }
+
+ public void cleanup()
{
- return RandomAccessReader.open(new File(path), this);
}
}