Adds the ability to use uncompressed chunks in compressed files

Triggered when size of compressed data surpasses a configurable
threshold.

Patch by Branimir Lambov; reviewed by Ropert Stupp for CASSANDRA-10520


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f97db26f
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f97db26f
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f97db26f

Branch: refs/heads/trunk
Commit: f97db26f8e9989d2294cccbea8a06589253313f2
Parents: 0ae0495
Author: Branimir Lambov <branimir.lam...@datastax.com>
Authored: Wed Oct 14 16:50:52 2015 +0300
Committer: Branimir Lambov <branimir.lam...@datastax.com>
Committed: Tue Feb 21 18:05:18 2017 +0200

----------------------------------------------------------------------
 CHANGES.txt                                     |   1 +
 .../io/compress/CompressedSequentialWriter.java |  25 +++-
 .../io/compress/CompressionMetadata.java        |  27 +++-
 .../cassandra/io/sstable/format/Version.java    |   2 +
 .../io/sstable/format/big/BigFormat.java        |  12 +-
 .../io/util/CompressedChunkReader.java          | 100 +++++++------
 .../cassandra/schema/CompressionParams.java     | 146 ++++++++++++++-----
 .../cassandra/service/AbstractReadExecutor.java |  14 +-
 .../compress/CompressedInputStream.java         |  11 +-
 .../streaming/messages/FileMessageHeader.java   |   5 +-
 .../streaming/messages/StreamMessage.java       |   4 +-
 .../legacy_na_clust/na-1-big-CompressionInfo.db | Bin 0 -> 87 bytes
 .../legacy_na_clust/na-1-big-Data.db            | Bin 0 -> 5359 bytes
 .../legacy_na_clust/na-1-big-Digest.crc32       |   1 +
 .../legacy_na_clust/na-1-big-Filter.db          | Bin 0 -> 24 bytes
 .../legacy_na_clust/na-1-big-Index.db           | Bin 0 -> 157553 bytes
 .../legacy_na_clust/na-1-big-Statistics.db      | Bin 0 -> 7070 bytes
 .../legacy_na_clust/na-1-big-Summary.db         | Bin 0 -> 47 bytes
 .../legacy_na_clust/na-1-big-TOC.txt            |   8 +
 .../legacy_na_clust/na-1-bti-CompressionInfo.db | Bin 0 -> 83 bytes
 .../legacy_na_clust/na-1-bti-Data.db            | Bin 0 -> 5315 bytes
 .../legacy_na_clust/na-1-bti-Digest.crc32       |   1 +
 .../legacy_na_clust/na-1-bti-Filter.db          | Bin 0 -> 24 bytes
 .../legacy_na_clust/na-1-bti-Partitions.db      | Bin 0 -> 63 bytes
 .../legacy_na_clust/na-1-bti-Rows.db            | Bin 0 -> 738 bytes
 .../legacy_na_clust/na-1-bti-Statistics.db      | Bin 0 -> 7086 bytes
 .../legacy_na_clust/na-1-bti-TOC.txt            |   8 +
 .../na-1-big-CompressionInfo.db                 | Bin 0 -> 87 bytes
 .../legacy_na_clust_compact/na-1-big-Data.db    | Bin 0 -> 5426 bytes
 .../na-1-big-Digest.crc32                       |   1 +
 .../legacy_na_clust_compact/na-1-big-Filter.db  | Bin 0 -> 24 bytes
 .../legacy_na_clust_compact/na-1-big-Index.db   | Bin 0 -> 157553 bytes
 .../na-1-big-Statistics.db                      | Bin 0 -> 7070 bytes
 .../legacy_na_clust_compact/na-1-big-Summary.db | Bin 0 -> 47 bytes
 .../legacy_na_clust_compact/na-1-big-TOC.txt    |   8 +
 .../na-1-bti-CompressionInfo.db                 | Bin 0 -> 83 bytes
 .../legacy_na_clust_compact/na-1-bti-Data.db    | Bin 0 -> 5398 bytes
 .../na-1-bti-Digest.crc32                       |   1 +
 .../legacy_na_clust_compact/na-1-bti-Filter.db  | Bin 0 -> 24 bytes
 .../na-1-bti-Partitions.db                      | Bin 0 -> 63 bytes
 .../legacy_na_clust_compact/na-1-bti-Rows.db    | Bin 0 -> 738 bytes
 .../na-1-bti-Statistics.db                      | Bin 0 -> 7086 bytes
 .../legacy_na_clust_compact/na-1-bti-TOC.txt    |   8 +
 .../na-1-big-CompressionInfo.db                 | Bin 0 -> 79 bytes
 .../legacy_na_clust_counter/na-1-big-Data.db    | Bin 0 -> 6015 bytes
 .../na-1-big-Digest.crc32                       |   1 +
 .../legacy_na_clust_counter/na-1-big-Filter.db  | Bin 0 -> 24 bytes
 .../legacy_na_clust_counter/na-1-big-Index.db   | Bin 0 -> 157553 bytes
 .../na-1-big-Statistics.db                      | Bin 0 -> 7079 bytes
 .../legacy_na_clust_counter/na-1-big-Summary.db | Bin 0 -> 47 bytes
 .../legacy_na_clust_counter/na-1-big-TOC.txt    |   8 +
 .../na-1-bti-CompressionInfo.db                 | Bin 0 -> 75 bytes
 .../legacy_na_clust_counter/na-1-bti-Data.db    | Bin 0 -> 5950 bytes
 .../na-1-bti-Digest.crc32                       |   1 +
 .../legacy_na_clust_counter/na-1-bti-Filter.db  | Bin 0 -> 24 bytes
 .../na-1-bti-Partitions.db                      | Bin 0 -> 63 bytes
 .../legacy_na_clust_counter/na-1-bti-Rows.db    | Bin 0 -> 738 bytes
 .../na-1-bti-Statistics.db                      | Bin 0 -> 7095 bytes
 .../legacy_na_clust_counter/na-1-bti-TOC.txt    |   8 +
 .../na-1-big-CompressionInfo.db                 | Bin 0 -> 79 bytes
 .../na-1-big-Data.db                            | Bin 0 -> 6014 bytes
 .../na-1-big-Digest.crc32                       |   1 +
 .../na-1-big-Filter.db                          | Bin 0 -> 24 bytes
 .../na-1-big-Index.db                           | Bin 0 -> 157553 bytes
 .../na-1-big-Statistics.db                      | Bin 0 -> 7079 bytes
 .../na-1-big-Summary.db                         | Bin 0 -> 47 bytes
 .../na-1-big-TOC.txt                            |   8 +
 .../na-1-bti-CompressionInfo.db                 | Bin 0 -> 75 bytes
 .../na-1-bti-Data.db                            | Bin 0 -> 5947 bytes
 .../na-1-bti-Digest.crc32                       |   1 +
 .../na-1-bti-Filter.db                          | Bin 0 -> 24 bytes
 .../na-1-bti-Partitions.db                      | Bin 0 -> 63 bytes
 .../na-1-bti-Rows.db                            | Bin 0 -> 738 bytes
 .../na-1-bti-Statistics.db                      | Bin 0 -> 7095 bytes
 .../na-1-bti-TOC.txt                            |   8 +
 .../na-1-big-CompressionInfo.db                 | Bin 0 -> 47 bytes
 .../legacy_na_simple/na-1-big-Data.db           | Bin 0 -> 92 bytes
 .../legacy_na_simple/na-1-big-Digest.crc32      |   1 +
 .../legacy_na_simple/na-1-big-Filter.db         | Bin 0 -> 24 bytes
 .../legacy_na_simple/na-1-big-Index.db          | Bin 0 -> 26 bytes
 .../legacy_na_simple/na-1-big-Statistics.db     | Bin 0 -> 4623 bytes
 .../legacy_na_simple/na-1-big-Summary.db        | Bin 0 -> 47 bytes
 .../legacy_na_simple/na-1-big-TOC.txt           |   8 +
 .../na-1-bti-CompressionInfo.db                 | Bin 0 -> 43 bytes
 .../legacy_na_simple/na-1-bti-Data.db           | Bin 0 -> 89 bytes
 .../legacy_na_simple/na-1-bti-Digest.crc32      |   1 +
 .../legacy_na_simple/na-1-bti-Filter.db         | Bin 0 -> 24 bytes
 .../legacy_na_simple/na-1-bti-Partitions.db     | Bin 0 -> 60 bytes
 .../legacy_na_simple/na-1-bti-Rows.db           |   0
 .../legacy_na_simple/na-1-bti-Statistics.db     | Bin 0 -> 4639 bytes
 .../legacy_na_simple/na-1-bti-TOC.txt           |   8 +
 .../na-1-big-CompressionInfo.db                 | Bin 0 -> 47 bytes
 .../legacy_na_simple_compact/na-1-big-Data.db   | Bin 0 -> 95 bytes
 .../na-1-big-Digest.crc32                       |   1 +
 .../legacy_na_simple_compact/na-1-big-Filter.db | Bin 0 -> 24 bytes
 .../legacy_na_simple_compact/na-1-big-Index.db  | Bin 0 -> 26 bytes
 .../na-1-big-Statistics.db                      | Bin 0 -> 4664 bytes
 .../na-1-big-Summary.db                         | Bin 0 -> 47 bytes
 .../legacy_na_simple_compact/na-1-big-TOC.txt   |   8 +
 .../na-1-bti-CompressionInfo.db                 | Bin 0 -> 43 bytes
 .../legacy_na_simple_compact/na-1-bti-Data.db   | Bin 0 -> 91 bytes
 .../na-1-bti-Digest.crc32                       |   1 +
 .../legacy_na_simple_compact/na-1-bti-Filter.db | Bin 0 -> 24 bytes
 .../na-1-bti-Partitions.db                      | Bin 0 -> 60 bytes
 .../legacy_na_simple_compact/na-1-bti-Rows.db   |   0
 .../na-1-bti-Statistics.db                      | Bin 0 -> 4680 bytes
 .../legacy_na_simple_compact/na-1-bti-TOC.txt   |   8 +
 .../na-1-big-CompressionInfo.db                 | Bin 0 -> 47 bytes
 .../legacy_na_simple_counter/na-1-big-Data.db   | Bin 0 -> 145 bytes
 .../na-1-big-Digest.crc32                       |   1 +
 .../legacy_na_simple_counter/na-1-big-Filter.db | Bin 0 -> 24 bytes
 .../legacy_na_simple_counter/na-1-big-Index.db  | Bin 0 -> 27 bytes
 .../na-1-big-Statistics.db                      | Bin 0 -> 4632 bytes
 .../na-1-big-Summary.db                         | Bin 0 -> 47 bytes
 .../legacy_na_simple_counter/na-1-big-TOC.txt   |   8 +
 .../na-1-bti-CompressionInfo.db                 | Bin 0 -> 43 bytes
 .../legacy_na_simple_counter/na-1-bti-Data.db   | Bin 0 -> 145 bytes
 .../na-1-bti-Digest.crc32                       |   1 +
 .../legacy_na_simple_counter/na-1-bti-Filter.db | Bin 0 -> 24 bytes
 .../na-1-bti-Partitions.db                      | Bin 0 -> 61 bytes
 .../legacy_na_simple_counter/na-1-bti-Rows.db   |   0
 .../na-1-bti-Statistics.db                      | Bin 0 -> 4648 bytes
 .../legacy_na_simple_counter/na-1-bti-TOC.txt   |   8 +
 .../na-1-big-CompressionInfo.db                 | Bin 0 -> 47 bytes
 .../na-1-big-Data.db                            | Bin 0 -> 146 bytes
 .../na-1-big-Digest.crc32                       |   1 +
 .../na-1-big-Filter.db                          | Bin 0 -> 24 bytes
 .../na-1-big-Index.db                           | Bin 0 -> 27 bytes
 .../na-1-big-Statistics.db                      | Bin 0 -> 4673 bytes
 .../na-1-big-Summary.db                         | Bin 0 -> 47 bytes
 .../na-1-big-TOC.txt                            |   8 +
 .../na-1-bti-CompressionInfo.db                 | Bin 0 -> 43 bytes
 .../na-1-bti-Data.db                            | Bin 0 -> 140 bytes
 .../na-1-bti-Digest.crc32                       |   1 +
 .../na-1-bti-Filter.db                          | Bin 0 -> 24 bytes
 .../na-1-bti-Partitions.db                      | Bin 0 -> 61 bytes
 .../na-1-bti-Rows.db                            |   0
 .../na-1-bti-Statistics.db                      | Bin 0 -> 4689 bytes
 .../na-1-bti-TOC.txt                            |   8 +
 .../unit/org/apache/cassandra/SchemaLoader.java |   2 +-
 .../cql3/validation/operations/AlterTest.java   |  27 +++-
 .../cql3/validation/operations/CreateTest.java  |  40 ++++-
 .../db/ColumnFamilyStoreCQLHelperTest.java      |   4 +-
 .../CompressedRandomAccessReaderTest.java       |  36 +++--
 .../CompressedSequentialWriterTest.java         |  24 ++-
 .../cassandra/io/sstable/LegacySSTableTest.java |   2 +-
 .../cassandra/io/util/MmappedRegionsTest.java   |   2 +-
 .../compression/CompressedInputStreamTest.java  |  40 ++++-
 148 files changed, 528 insertions(+), 140 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index cac380a..07b0630 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0
+ * Adds the ability to use uncompressed chunks in compressed files 
(CASSANDRA-10520)
  * Don't flush sstables when streaming for incremental repair (CASSANDRA-13226)
  * Remove unused method (CASSANDRA-13227)
  * Fix minor bugs related to #9143 (CASSANDRA-13217)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java 
b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java
index 973c94c..b4ea61f 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java
@@ -60,6 +60,8 @@ public class CompressedSequentialWriter extends 
SequentialWriter
     private final ByteBuffer crcCheckBuffer = ByteBuffer.allocate(4);
     private final Optional<File> digestFile;
 
+    private final int maxCompressedLength;
+
     /**
      * Create CompressedSequentialWriter without digest file.
      *
@@ -90,6 +92,8 @@ public class CompressedSequentialWriter extends 
SequentialWriter
         // buffer for compression should be the same size as buffer itself
         compressed = 
compressor.preferredBufferType().allocate(compressor.initialCompressedBufferLength(buffer.capacity()));
 
+        maxCompressedLength = parameters.maxCompressedLength();
+
         /* Index File (-CompressionInfo.db component) and it's header */
         metadataWriter = CompressionMetadata.Writer.open(parameters, 
offsetsPath);
 
@@ -146,6 +150,12 @@ public class CompressedSequentialWriter extends 
SequentialWriter
 
         int compressedLength = compressed.position();
         uncompressedSize += buffer.position();
+        ByteBuffer toWrite = compressed;
+        if (compressedLength > maxCompressedLength)
+        {
+            toWrite = buffer;
+            compressedLength = buffer.position();
+        }
         compressedSize += compressedLength;
 
         try
@@ -155,18 +165,20 @@ public class CompressedSequentialWriter extends 
SequentialWriter
             chunkCount++;
 
             // write out the compressed data
-            compressed.flip();
-            channel.write(compressed);
+            toWrite.flip();
+            channel.write(toWrite);
 
             // write corresponding checksum
-            compressed.rewind();
-            crcMetadata.appendDirect(compressed, true);
+            toWrite.rewind();
+            crcMetadata.appendDirect(toWrite, true);
             lastFlushOffset += compressedLength + 4;
         }
         catch (IOException e)
         {
             throw new FSWriteError(e, getPath());
         }
+        if (toWrite == buffer)
+            buffer.position(compressedLength);
 
         // next chunk should be written right after current + length of the 
checksum (int)
         chunkOffset += compressedLength + 4;
@@ -228,7 +240,10 @@ public class CompressedSequentialWriter extends 
SequentialWriter
                 // Repopulate buffer from compressed data
                 buffer.clear();
                 compressed.flip();
-                compressor.uncompress(compressed, buffer);
+                if (chunkSize <= maxCompressedLength)
+                    compressor.uncompress(compressed, buffer);
+                else
+                    buffer.put(compressed);
             }
             catch (IOException e)
             {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java 
b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
index be264bf..a591bb5 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
@@ -84,12 +84,22 @@ public class CompressionMetadata
      */
     public static CompressionMetadata create(String dataFilePath)
     {
-        Descriptor desc = Descriptor.fromFilename(dataFilePath);
-        return new 
CompressionMetadata(desc.filenameFor(Component.COMPRESSION_INFO), new 
File(dataFilePath).length());
+        return createWithLength(dataFilePath, new File(dataFilePath).length());
+    }
+
+    public static CompressionMetadata createWithLength(String dataFilePath, 
long compressedLength)
+    {
+        return new CompressionMetadata(Descriptor.fromFilename(dataFilePath), 
compressedLength);
+    }
+
+    @VisibleForTesting
+    public CompressionMetadata(Descriptor desc, long compressedLength)
+    {
+        this(desc.filenameFor(Component.COMPRESSION_INFO), compressedLength, 
desc.version.hasMaxCompressedLength());
     }
 
     @VisibleForTesting
-    public CompressionMetadata(String indexFilePath, long compressedLength)
+    public CompressionMetadata(String indexFilePath, long compressedLength, 
boolean hasMaxCompressedSize)
     {
         this.indexFilePath = indexFilePath;
 
@@ -105,9 +115,12 @@ public class CompressionMetadata
                 options.put(key, value);
             }
             int chunkLength = stream.readInt();
+            int maxCompressedSize = Integer.MAX_VALUE;
+            if (hasMaxCompressedSize)
+                maxCompressedSize = stream.readInt();
             try
             {
-                parameters = new CompressionParams(compressorName, 
chunkLength, options);
+                parameters = new CompressionParams(compressorName, 
chunkLength, maxCompressedSize, options);
             }
             catch (ConfigurationException e)
             {
@@ -150,6 +163,11 @@ public class CompressionMetadata
         return parameters.chunkLength();
     }
 
+    public int maxCompressedLength()
+    {
+        return parameters.maxCompressedLength();
+    }
+
     /**
      * Returns the amount of memory in bytes used off heap.
      * @return the amount of memory in bytes used off heap
@@ -350,6 +368,7 @@ public class CompressionMetadata
 
                 // store the length of the chunk
                 out.writeInt(parameters.chunkLength());
+                out.writeInt(parameters.maxCompressedLength());
                 // store position and reserve a place for uncompressed data 
length and chunks count
                 out.writeLong(dataLength);
                 out.writeInt(chunks);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/io/sstable/format/Version.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/format/Version.java 
b/src/java/org/apache/cassandra/io/sstable/format/Version.java
index a07e48f..a7d1abf 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/Version.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/Version.java
@@ -51,6 +51,8 @@ public abstract class Version
 
     public abstract boolean hasCommitLogIntervals();
 
+    public abstract boolean hasMaxCompressedLength();
+
     public abstract boolean hasPendingRepair();
 
     public String getVersion()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java
index cad192a..9b0b5c5 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java
@@ -112,7 +112,7 @@ public class BigFormat implements SSTableFormat
     // we always incremented the major version.
     static class BigVersion extends Version
     {
-        public static final String current_version = "md";
+        public static final String current_version = "na";
         public static final String earliest_supported_version = "ma";
 
         // ma (3.0.0): swap bf hash order
@@ -120,6 +120,8 @@ public class BigFormat implements SSTableFormat
         // mb (3.0.7, 3.7): commit log lower bound included
         // mc (3.0.8, 3.9): commit log intervals included
         // md (3.0.9, 3.10): pending repair session included
+
+        // na (4.0.0): uncompressed chunks
         //
         // NOTE: when adding a new version, please add that to 
LegacySSTableTest, too.
 
@@ -127,6 +129,7 @@ public class BigFormat implements SSTableFormat
         public final int correspondingMessagingVersion;
         private final boolean hasCommitLogLowerBound;
         private final boolean hasCommitLogIntervals;
+        public final boolean hasMaxCompressedLength;
         private final boolean hasPendingRepair;
 
         BigVersion(String version)
@@ -138,6 +141,7 @@ public class BigFormat implements SSTableFormat
 
             hasCommitLogLowerBound = version.compareTo("mb") >= 0;
             hasCommitLogIntervals = version.compareTo("mc") >= 0;
+            hasMaxCompressedLength = version.compareTo("na") >= 0;
             hasPendingRepair = version.compareTo("md") >= 0;
         }
 
@@ -181,5 +185,11 @@ public class BigFormat implements SSTableFormat
         {
             return isCompatible() && version.charAt(0) == 
current_version.charAt(0);
         }
+
+        @Override
+        public boolean hasMaxCompressedLength()
+        {
+            return hasMaxCompressedLength;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/io/util/CompressedChunkReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/CompressedChunkReader.java 
b/src/java/org/apache/cassandra/io/util/CompressedChunkReader.java
index 219f0eb..15f9fa0 100644
--- a/src/java/org/apache/cassandra/io/util/CompressedChunkReader.java
+++ b/src/java/org/apache/cassandra/io/util/CompressedChunkReader.java
@@ -34,11 +34,13 @@ import org.apache.cassandra.utils.ChecksumType;
 public abstract class CompressedChunkReader extends AbstractReaderFileProxy 
implements ChunkReader
 {
     final CompressionMetadata metadata;
+    final int maxCompressedLength;
 
     protected CompressedChunkReader(ChannelProxy channel, CompressionMetadata 
metadata)
     {
         super(channel, metadata.dataLength);
         this.metadata = metadata;
+        this.maxCompressedLength = metadata.maxCompressedLength();
         assert Integer.bitCount(metadata.chunkLength()) == 1; //must be a 
power of two
     }
 
@@ -48,6 +50,11 @@ public abstract class CompressedChunkReader extends 
AbstractReaderFileProxy impl
         return metadata.parameters.getCrcCheckChance();
     }
 
+    public boolean maybeCheckCrc()
+    {
+        return metadata.parameters.maybeCheckCrc();
+    }
+
     @Override
     public String toString()
     {
@@ -90,7 +97,8 @@ public abstract class CompressedChunkReader extends 
AbstractReaderFileProxy impl
 
         public ByteBuffer allocateBuffer()
         {
-            return 
allocateBuffer(metadata.compressor().initialCompressedBufferLength(metadata.chunkLength()));
+            return allocateBuffer(Math.min(maxCompressedLength,
+                                           
metadata.compressor().initialCompressedBufferLength(metadata.chunkLength())));
         }
 
         public ByteBuffer allocateBuffer(int size)
@@ -108,54 +116,58 @@ public abstract class CompressedChunkReader extends 
AbstractReaderFileProxy impl
                 assert position <= fileLength;
 
                 CompressionMetadata.Chunk chunk = metadata.chunkFor(position);
-                ByteBuffer compressed = compressedHolder.get();
-
-                if (compressed.capacity() < chunk.length)
+                if (chunk.length <= maxCompressedLength)
                 {
-                    compressed = allocateBuffer(chunk.length);
-                    compressedHolder.set(compressed);
-                }
-                else
-                {
-                    compressed.clear();
-                }
-
-                compressed.limit(chunk.length);
-                if (channel.read(compressed, chunk.offset) != chunk.length)
-                    throw new CorruptBlockException(channel.filePath(), chunk);
-
-                compressed.flip();
-                uncompressed.clear();
+                    ByteBuffer compressed = compressedHolder.get();
+                    assert compressed.capacity() >= chunk.length;
+                    compressed.clear().limit(chunk.length);
+                    if (channel.read(compressed, chunk.offset) != chunk.length)
+                        throw new CorruptBlockException(channel.filePath(), 
chunk);
 
-                try
-                {
-                    metadata.compressor().uncompress(compressed, uncompressed);
+                    compressed.flip();
+                    uncompressed.clear();
+
+                    try
+                    {
+                        metadata.compressor().uncompress(compressed, 
uncompressed);
+                    }
+                    catch (IOException e)
+                    {
+                        throw new CorruptBlockException(channel.filePath(), 
chunk, e);
+                    }
+                    maybeCheckCrc(chunk, compressed);
                 }
-                catch (IOException e)
-                {
-                    throw new CorruptBlockException(channel.filePath(), chunk, 
e);
-                }
-                finally
-                {
-                    uncompressed.flip();
-                }
-
-                if (getCrcCheckChance() > 
ThreadLocalRandom.current().nextDouble())
+                else
                 {
-                    compressed.rewind();
-                    int checksum = (int) ChecksumType.CRC32.of(compressed);
-
-                    compressed.clear().limit(Integer.BYTES);
-                    if (channel.read(compressed, chunk.offset + chunk.length) 
!= Integer.BYTES
-                                || compressed.getInt(0) != checksum)
+                    uncompressed.position(0).limit(chunk.length);
+                    if (channel.read(uncompressed, chunk.offset) != 
chunk.length)
                         throw new CorruptBlockException(channel.filePath(), 
chunk);
+                    maybeCheckCrc(chunk, uncompressed);
                 }
+                uncompressed.flip();
             }
             catch (CorruptBlockException e)
             {
+                // Make sure reader does not see stale data.
+                uncompressed.position(0).limit(0);
                 throw new CorruptSSTableException(e, channel.filePath());
             }
         }
+
+        void maybeCheckCrc(CompressionMetadata.Chunk chunk, ByteBuffer 
content) throws CorruptBlockException
+        {
+            if (metadata.parameters.maybeCheckCrc())
+            {
+                content.flip();
+                int checksum = (int) ChecksumType.CRC32.of(content);
+
+                ByteBuffer scratch = compressedHolder.get(); // This may match 
content. That's ok, we no longer need it.
+                scratch.clear().limit(Integer.BYTES);
+                if (channel.read(scratch, chunk.offset + chunk.length) != 
Integer.BYTES
+                            || scratch.getInt(0) != checksum)
+                    throw new CorruptBlockException(channel.filePath(), chunk);
+            }
+        }
     }
 
     public static class Mmap extends CompressedChunkReader
@@ -190,18 +202,18 @@ public abstract class CompressedChunkReader extends 
AbstractReaderFileProxy impl
 
                 try
                 {
-                    metadata.compressor().uncompress(compressedChunk, 
uncompressed);
+                    if (chunk.length <= maxCompressedLength)
+                        metadata.compressor().uncompress(compressedChunk, 
uncompressed);
+                    else
+                        uncompressed.put(compressedChunk);
                 }
                 catch (IOException e)
                 {
                     throw new CorruptBlockException(channel.filePath(), chunk, 
e);
                 }
-                finally
-                {
-                    uncompressed.flip();
-                }
+                uncompressed.flip();
 
-                if (getCrcCheckChance() > 
ThreadLocalRandom.current().nextDouble())
+                if (maybeCheckCrc())
                 {
                     compressedChunk.position(chunkOffset).limit(chunkOffset + 
chunk.length);
 
@@ -214,6 +226,8 @@ public abstract class CompressedChunkReader extends 
AbstractReaderFileProxy impl
             }
             catch (CorruptBlockException e)
             {
+                // Make sure reader does not see stale data.
+                uncompressed.position(0).limit(0);
                 throw new CorruptSSTableException(e, channel.filePath());
             }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/schema/CompressionParams.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/schema/CompressionParams.java 
b/src/java/org/apache/cassandra/schema/CompressionParams.java
index f48a688..a319311 100644
--- a/src/java/org/apache/cassandra/schema/CompressionParams.java
+++ b/src/java/org/apache/cassandra/schema/CompressionParams.java
@@ -23,10 +23,13 @@ import java.lang.reflect.Method;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ThreadLocalRandom;
 
 import com.google.common.collect.ImmutableMap;
+
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -37,6 +40,7 @@ import org.apache.cassandra.io.IVersionedSerializer;
 import org.apache.cassandra.io.compress.*;
 import org.apache.cassandra.io.util.DataInputPlus;
 import org.apache.cassandra.io.util.DataOutputPlus;
+import org.apache.cassandra.streaming.messages.StreamMessage;
 
 import static java.lang.String.format;
 
@@ -50,14 +54,18 @@ public final class CompressionParams
     private static volatile boolean hasLoggedCrcCheckChanceWarning;
 
     public static final int DEFAULT_CHUNK_LENGTH = 65536;
+    public static final double DEFAULT_MIN_COMPRESS_RATIO = 1.1;
     public static final IVersionedSerializer<CompressionParams> serializer = 
new Serializer();
 
     public static final String CLASS = "class";
     public static final String CHUNK_LENGTH_IN_KB = "chunk_length_in_kb";
     public static final String ENABLED = "enabled";
+    public static final String MIN_COMPRESS_RATIO = "min_compress_ratio";
 
     public static final CompressionParams DEFAULT = new 
CompressionParams(LZ4Compressor.create(Collections.<String, String>emptyMap()),
                                                                           
DEFAULT_CHUNK_LENGTH,
+                                                                          
calcMaxCompressedLength(DEFAULT_CHUNK_LENGTH, DEFAULT_MIN_COMPRESS_RATIO),
+                                                                          
DEFAULT_MIN_COMPRESS_RATIO,
                                                                           
Collections.emptyMap());
 
     private static final String CRC_CHECK_CHANCE_WARNING = "The option 
crc_check_chance was deprecated as a compression option. " +
@@ -68,7 +76,9 @@ public final class CompressionParams
     @Deprecated public static final String CRC_CHECK_CHANCE = 
"crc_check_chance";
 
     private final ICompressor sstableCompressor;
-    private final Integer chunkLength;
+    private final int chunkLength;
+    private final int maxCompressedLength;  // In content we store max length 
to avoid rounding errors causing compress/decompress mismatch.
+    private final double minCompressRatio;  // In configuration we store min 
ratio, the input parameter.
     private final ImmutableMap<String, String> otherOptions; // Unrecognized 
options, can be used by the compressor
 
     private volatile double crcCheckChance = 1.0;
@@ -94,9 +104,10 @@ public final class CompressionParams
             sstableCompressionClass = removeSstableCompressionClass(options);
         }
 
-        Integer chunkLength = removeChunkLength(options);
+        int chunkLength = removeChunkLength(options);
+        double minCompressRatio = removeMinCompressRatio(options);
 
-        CompressionParams cp = new CompressionParams(sstableCompressionClass, 
chunkLength, options);
+        CompressionParams cp = new CompressionParams(sstableCompressionClass, 
options, chunkLength, minCompressRatio);
         cp.validate();
 
         return cp;
@@ -109,54 +120,83 @@ public final class CompressionParams
 
     public static CompressionParams noCompression()
     {
-        return new CompressionParams((ICompressor) null, DEFAULT_CHUNK_LENGTH, 
Collections.emptyMap());
+        return new CompressionParams((ICompressor) null, DEFAULT_CHUNK_LENGTH, 
Integer.MAX_VALUE, 0.0, Collections.emptyMap());
     }
 
     public static CompressionParams snappy()
     {
-        return snappy(null);
+        return snappy(DEFAULT_CHUNK_LENGTH);
+    }
+
+    public static CompressionParams snappy(int chunkLength)
+    {
+        return snappy(chunkLength, DEFAULT_MIN_COMPRESS_RATIO);
     }
 
-    public static CompressionParams snappy(Integer chunkLength)
+    public static CompressionParams snappy(int chunkLength, double 
minCompressRatio)
     {
-        return new CompressionParams(SnappyCompressor.instance, chunkLength, 
Collections.emptyMap());
+        return new CompressionParams(SnappyCompressor.instance, chunkLength, 
calcMaxCompressedLength(chunkLength, minCompressRatio), minCompressRatio, 
Collections.emptyMap());
     }
 
     public static CompressionParams deflate()
     {
-        return deflate(null);
+        return deflate(DEFAULT_CHUNK_LENGTH);
     }
 
-    public static CompressionParams deflate(Integer chunkLength)
+    public static CompressionParams deflate(int chunkLength)
     {
-        return new CompressionParams(DeflateCompressor.instance, chunkLength, 
Collections.emptyMap());
+        return new CompressionParams(DeflateCompressor.instance, chunkLength, 
Integer.MAX_VALUE, 0.0, Collections.emptyMap());
     }
 
     public static CompressionParams lz4()
     {
-        return lz4(null);
+        return lz4(DEFAULT_CHUNK_LENGTH);
     }
 
-    public static CompressionParams lz4(Integer chunkLength)
+    public static CompressionParams lz4(int chunkLength)
     {
-        return new 
CompressionParams(LZ4Compressor.create(Collections.emptyMap()), chunkLength, 
Collections.emptyMap());
+        return lz4(chunkLength, Integer.MAX_VALUE);
     }
 
-    public CompressionParams(String sstableCompressorClass, Integer 
chunkLength, Map<String, String> otherOptions) throws ConfigurationException
+    public static CompressionParams lz4(int chunkLength, int 
maxCompressedLength)
     {
-        this(createCompressor(parseCompressorClass(sstableCompressorClass), 
otherOptions), chunkLength, otherOptions);
+        return new 
CompressionParams(LZ4Compressor.create(Collections.emptyMap()), chunkLength, 
maxCompressedLength, calcMinCompressRatio(chunkLength, maxCompressedLength), 
Collections.emptyMap());
     }
 
-    private CompressionParams(ICompressor sstableCompressor, Integer 
chunkLength, Map<String, String> otherOptions) throws ConfigurationException
+    public CompressionParams(String sstableCompressorClass, Map<String, 
String> otherOptions, int chunkLength, double minCompressRatio) throws 
ConfigurationException
+    {
+        this(createCompressor(parseCompressorClass(sstableCompressorClass), 
otherOptions), chunkLength, calcMaxCompressedLength(chunkLength, 
minCompressRatio), minCompressRatio, otherOptions);
+    }
+
+    static int calcMaxCompressedLength(int chunkLength, double 
minCompressRatio)
+    {
+        return (int) Math.ceil(Math.min(chunkLength / minCompressRatio, 
Integer.MAX_VALUE));
+    }
+
+    public CompressionParams(String sstableCompressorClass, int chunkLength, 
int maxCompressedLength, Map<String, String> otherOptions) throws 
ConfigurationException
+    {
+        this(createCompressor(parseCompressorClass(sstableCompressorClass), 
otherOptions), chunkLength, maxCompressedLength, 
calcMinCompressRatio(chunkLength, maxCompressedLength), otherOptions);
+    }
+
+    static double calcMinCompressRatio(int chunkLength, int 
maxCompressedLength)
+    {
+        if (maxCompressedLength == Integer.MAX_VALUE)
+            return 0;
+        return chunkLength * 1.0 / maxCompressedLength;
+    }
+
+    private CompressionParams(ICompressor sstableCompressor, int chunkLength, 
int maxCompressedLength, double minCompressRatio, Map<String, String> 
otherOptions) throws ConfigurationException
     {
         this.sstableCompressor = sstableCompressor;
         this.chunkLength = chunkLength;
         this.otherOptions = ImmutableMap.copyOf(otherOptions);
+        this.minCompressRatio = minCompressRatio;
+        this.maxCompressedLength = maxCompressedLength;
     }
 
     public CompressionParams copy()
     {
-        return new CompressionParams(sstableCompressor, chunkLength, 
otherOptions);
+        return new CompressionParams(sstableCompressor, chunkLength, 
maxCompressedLength, minCompressRatio, otherOptions);
     }
 
     /**
@@ -184,7 +224,12 @@ public final class CompressionParams
 
     public int chunkLength()
     {
-        return chunkLength == null ? DEFAULT_CHUNK_LENGTH : chunkLength;
+        return chunkLength;
+    }
+
+    public int maxCompressedLength()
+    {
+        return maxCompressedLength;
     }
 
     private static Class<?> parseCompressorClass(String className) throws 
ConfigurationException
@@ -312,7 +357,7 @@ public final class CompressionParams
      * @param options the options
      * @return the chunk length value
      */
-    private static Integer removeChunkLength(Map<String, String> options)
+    private static int removeChunkLength(Map<String, String> options)
     {
         if (options.containsKey(CHUNK_LENGTH_IN_KB))
         {
@@ -339,7 +384,23 @@ public final class CompressionParams
             return parseChunkLength(options.remove(CHUNK_LENGTH_KB));
         }
 
-        return null;
+        return DEFAULT_CHUNK_LENGTH;
+    }
+
+    /**
+     * Removes the min compress ratio option from the specified set of option.
+     *
+     * @param options the options
+     * @return the min compress ratio, used to calculate max chunk size to 
write compressed
+     */
+    private static double removeMinCompressRatio(Map<String, String> options)
+    {
+        String ratio = options.remove(MIN_COMPRESS_RATIO);
+        if (ratio != null)
+        {
+            return Double.parseDouble(ratio);
+        }
+        return DEFAULT_MIN_COMPRESS_RATIO;
     }
 
     /**
@@ -420,25 +481,14 @@ public final class CompressionParams
     public void validate() throws ConfigurationException
     {
         // if chunk length was not set (chunkLength == null), this is fine, 
default will be used
-        if (chunkLength != null)
-        {
-            if (chunkLength <= 0)
-                throw new ConfigurationException("Invalid negative or null " + 
CHUNK_LENGTH_IN_KB);
+        if (chunkLength <= 0)
+            throw new ConfigurationException("Invalid negative or null " + 
CHUNK_LENGTH_IN_KB);
 
-            int c = chunkLength;
-            boolean found = false;
-            while (c != 0)
-            {
-                if ((c & 0x01) != 0)
-                {
-                    if (found)
-                        throw new ConfigurationException(CHUNK_LENGTH_IN_KB + 
" must be a power of 2");
-                    else
-                        found = true;
-                }
-                c >>= 1;
-            }
-        }
+        if ((chunkLength & (chunkLength - 1)) != 0)
+            throw new ConfigurationException(CHUNK_LENGTH_IN_KB + " must be a 
power of 2");
+
+        if (maxCompressedLength < 0)
+            throw new ConfigurationException("Invalid negative " + 
MIN_COMPRESS_RATIO);
     }
 
     public Map<String, String> asMap()
@@ -449,6 +499,7 @@ public final class CompressionParams
         Map<String, String> options = new HashMap<>(otherOptions);
         options.put(CLASS, sstableCompressor.getClass().getName());
         options.put(CHUNK_LENGTH_IN_KB, chunkLengthInKB());
+        options.put(MIN_COMPRESS_RATIO, String.valueOf(minCompressRatio));
 
         return options;
     }
@@ -468,6 +519,12 @@ public final class CompressionParams
         return crcCheckChance;
     }
 
+    public boolean maybeCheckCrc()
+    {
+        double checkChance = getCrcCheckChance();
+        return checkChance > 0d && checkChance > 
ThreadLocalRandom.current().nextDouble();
+    }
+
     @Override
     public boolean equals(Object obj)
     {
@@ -510,6 +567,11 @@ public final class CompressionParams
                 out.writeUTF(entry.getValue());
             }
             out.writeInt(parameters.chunkLength());
+            if (version >= StreamMessage.VERSION_40)
+                out.writeInt(parameters.maxCompressedLength);
+            else
+                if (parameters.maxCompressedLength != Integer.MAX_VALUE)
+                    throw new UnsupportedOperationException("Cannot stream 
SSTables with uncompressed chunks to pre-4.0 nodes.");
         }
 
         public CompressionParams deserialize(DataInputPlus in, int version) 
throws IOException
@@ -524,10 +586,14 @@ public final class CompressionParams
                 options.put(key, value);
             }
             int chunkLength = in.readInt();
+            int minCompressRatio = Integer.MAX_VALUE;   // Earlier Cassandra 
cannot use uncompressed chunks.
+            if (version >= StreamMessage.VERSION_40)
+                minCompressRatio = in.readInt();
+
             CompressionParams parameters;
             try
             {
-                parameters = new CompressionParams(compressorName, 
chunkLength, options);
+                parameters = new CompressionParams(compressorName, 
chunkLength, minCompressRatio, options);
             }
             catch (ConfigurationException e)
             {
@@ -546,6 +612,8 @@ public final class CompressionParams
                 size += TypeSizes.sizeof(entry.getValue());
             }
             size += TypeSizes.sizeof(parameters.chunkLength());
+            if (version >= StreamMessage.VERSION_40)
+                size += TypeSizes.sizeof(parameters.maxCompressedLength());
             return size;
         }
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java 
b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
index 6e0f45b..7a82187 100644
--- a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
+++ b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
@@ -148,12 +148,16 @@ public abstract class AbstractReadExecutor
 
     private static ReadRepairDecision newReadRepairDecision(TableMetadata 
metadata)
     {
-        double chance = ThreadLocalRandom.current().nextDouble();
-        if (metadata.params.readRepairChance > chance)
-            return ReadRepairDecision.GLOBAL;
+        if (metadata.params.readRepairChance > 0d ||
+            metadata.params.dcLocalReadRepairChance > 0)
+        {
+            double chance = ThreadLocalRandom.current().nextDouble();
+            if (metadata.params.readRepairChance > chance)
+                return ReadRepairDecision.GLOBAL;
 
-        if (metadata.params.dcLocalReadRepairChance > chance)
-            return ReadRepairDecision.DC_LOCAL;
+            if (metadata.params.dcLocalReadRepairChance > chance)
+                return ReadRepairDecision.DC_LOCAL;
+        }
 
         return ReadRepairDecision.NONE;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
index 81abefa..003db61 100644
--- 
a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
+++ 
b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
@@ -160,11 +160,18 @@ public class CompressedInputStream extends InputStream
     private void decompress(byte[] compressed) throws IOException
     {
         // uncompress
-        validBufferBytes = 
info.parameters.getSstableCompressor().uncompress(compressed, 0, 
compressed.length - checksumBytes.length, buffer, 0);
+        if (compressed.length - checksumBytes.length < 
info.parameters.maxCompressedLength())
+            validBufferBytes = 
info.parameters.getSstableCompressor().uncompress(compressed, 0, 
compressed.length - checksumBytes.length, buffer, 0);
+        else
+        {
+            validBufferBytes = compressed.length - checksumBytes.length;
+            System.arraycopy(compressed, 0, buffer, 0, validBufferBytes);
+        }
         totalCompressedBytesRead += compressed.length;
 
         // validate crc randomly
-        if (this.crcCheckChanceSupplier.get() > 
ThreadLocalRandom.current().nextDouble())
+        double crcCheckChance = this.crcCheckChanceSupplier.get();
+        if (crcCheckChance > 0d && crcCheckChance > 
ThreadLocalRandom.current().nextDouble())
         {
             int checksum = (int) checksumType.of(compressed, 0, 
compressed.length - checksumBytes.length);
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java 
b/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java
index a37420b..f449982 100644
--- a/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java
+++ b/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java
@@ -221,7 +221,7 @@ public class FileMessageHeader
             List<Pair<Long, Long>> sections = new ArrayList<>(count);
             for (int k = 0; k < count; k++)
                 sections.add(Pair.create(in.readLong(), in.readLong()));
-            CompressionInfo compressionInfo = 
CompressionInfo.serializer.deserialize(in, MessagingService.current_version);
+            CompressionInfo compressionInfo = 
CompressionInfo.serializer.deserialize(in, version);
             long repairedAt = in.readLong();
             int sstableLevel = in.readInt();
             SerializationHeader.Component header =  
SerializationHeader.serializer.deserialize(sstableVersion, in);
@@ -246,8 +246,7 @@ public class FileMessageHeader
             size += 
CompressionInfo.serializer.serializedSize(header.compressionInfo, version);
             size += TypeSizes.sizeof(header.sstableLevel);
 
-            if (version >= StreamMessage.VERSION_30)
-                size += 
SerializationHeader.serializer.serializedSize(header.version, header.header);
+            size += 
SerializationHeader.serializer.serializedSize(header.version, header.header);
 
             return size;
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java 
b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
index 3ce1958..48def64 100644
--- a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
+++ b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
@@ -33,8 +33,8 @@ import org.apache.cassandra.streaming.StreamSession;
 public abstract class StreamMessage
 {
     /** Streaming protocol version */
-    public static final int VERSION_30 = 4;
-    public static final int CURRENT_VERSION = VERSION_30;
+    public static final int VERSION_40 = 5;
+    public static final int CURRENT_VERSION = VERSION_40;
 
     private transient volatile boolean sent = false;
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-CompressionInfo.db
new file mode 100644
index 0000000..6bf2986
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Data.db 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Data.db
new file mode 100644
index 0000000..f92f905
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Data.db 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Digest.crc32
new file mode 100644
index 0000000..37f68ab
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Digest.crc32
@@ -0,0 +1 @@
+1337396261
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Filter.db 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Filter.db 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Index.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Index.db 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Index.db
new file mode 100644
index 0000000..b173dda
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Index.db 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Statistics.db
new file mode 100644
index 0000000..1fd8bac
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Summary.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Summary.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Summary.db
new file mode 100644
index 0000000..9b24e04
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Summary.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-TOC.txt
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-TOC.txt 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-TOC.txt
new file mode 100644
index 0000000..ae620de
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-TOC.txt
@@ -0,0 +1,8 @@
+Summary.db
+Filter.db
+Index.db
+CompressionInfo.db
+Data.db
+TOC.txt
+Statistics.db
+Digest.crc32

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-CompressionInfo.db
new file mode 100644
index 0000000..c96fb7d
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Data.db 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Data.db
new file mode 100644
index 0000000..5ecab70
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Data.db 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Digest.crc32
new file mode 100644
index 0000000..e94e369
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Digest.crc32
@@ -0,0 +1 @@
+2666613329
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Filter.db 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Filter.db 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Partitions.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Partitions.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Partitions.db
new file mode 100644
index 0000000..aded0e1
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Partitions.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Rows.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Rows.db 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Rows.db
new file mode 100644
index 0000000..44803b4
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Rows.db 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Statistics.db
new file mode 100644
index 0000000..9e8a4b1
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-TOC.txt
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-TOC.txt 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-TOC.txt
new file mode 100644
index 0000000..c20f4a8
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-TOC.txt
@@ -0,0 +1,8 @@
+Data.db
+Filter.db
+Statistics.db
+CompressionInfo.db
+Partitions.db
+TOC.txt
+Rows.db
+Digest.crc32

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-CompressionInfo.db
new file mode 100644
index 0000000..1e69fcd
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Data.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Data.db
new file mode 100644
index 0000000..f4fb8f2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Data.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Digest.crc32
new file mode 100644
index 0000000..ce2e2f8
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Digest.crc32
@@ -0,0 +1 @@
+2454456604
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Filter.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Filter.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Index.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Index.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Index.db
new file mode 100644
index 0000000..3f46350
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Index.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Statistics.db
new file mode 100644
index 0000000..b15e758
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Summary.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Summary.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Summary.db
new file mode 100644
index 0000000..9b24e04
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Summary.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-TOC.txt
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-TOC.txt
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-TOC.txt
new file mode 100644
index 0000000..ae620de
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-TOC.txt
@@ -0,0 +1,8 @@
+Summary.db
+Filter.db
+Index.db
+CompressionInfo.db
+Data.db
+TOC.txt
+Statistics.db
+Digest.crc32

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-CompressionInfo.db
new file mode 100644
index 0000000..9c013f7
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Data.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Data.db
new file mode 100644
index 0000000..1f54033
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Data.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Digest.crc32
new file mode 100644
index 0000000..e57848f
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Digest.crc32
@@ -0,0 +1 @@
+874495544
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Filter.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Filter.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Partitions.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Partitions.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Partitions.db
new file mode 100644
index 0000000..aded0e1
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Partitions.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Rows.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Rows.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Rows.db
new file mode 100644
index 0000000..6992a68
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Rows.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Statistics.db
new file mode 100644
index 0000000..05a8251
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-TOC.txt
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-TOC.txt
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-TOC.txt
new file mode 100644
index 0000000..c20f4a8
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-TOC.txt
@@ -0,0 +1,8 @@
+Data.db
+Filter.db
+Statistics.db
+CompressionInfo.db
+Partitions.db
+TOC.txt
+Rows.db
+Digest.crc32

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-CompressionInfo.db
new file mode 100644
index 0000000..7fd6a6c
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Data.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Data.db
new file mode 100644
index 0000000..5e9425e
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Data.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Digest.crc32
new file mode 100644
index 0000000..0a20edb
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Digest.crc32
@@ -0,0 +1 @@
+41575897
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Filter.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Filter.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Index.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Index.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Index.db
new file mode 100644
index 0000000..2474c3e
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Index.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Statistics.db
new file mode 100644
index 0000000..3df7cf3
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Summary.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Summary.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Summary.db
new file mode 100644
index 0000000..9b24e04
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Summary.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-TOC.txt
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-TOC.txt
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-TOC.txt
new file mode 100644
index 0000000..ae620de
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-TOC.txt
@@ -0,0 +1,8 @@
+Summary.db
+Filter.db
+Index.db
+CompressionInfo.db
+Data.db
+TOC.txt
+Statistics.db
+Digest.crc32

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-CompressionInfo.db
new file mode 100644
index 0000000..a8ab572
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Data.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Data.db
new file mode 100644
index 0000000..3632c25
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Data.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Digest.crc32
new file mode 100644
index 0000000..a199ec3
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Digest.crc32
@@ -0,0 +1 @@
+2912620103
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Filter.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Filter.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Partitions.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Partitions.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Partitions.db
new file mode 100644
index 0000000..aded0e1
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Partitions.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Rows.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Rows.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Rows.db
new file mode 100644
index 0000000..b0aea85
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Rows.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Statistics.db
new file mode 100644
index 0000000..3b51c1b
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-TOC.txt
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-TOC.txt
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-TOC.txt
new file mode 100644
index 0000000..c20f4a8
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-TOC.txt
@@ -0,0 +1,8 @@
+Data.db
+Filter.db
+Statistics.db
+CompressionInfo.db
+Partitions.db
+TOC.txt
+Rows.db
+Digest.crc32

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-CompressionInfo.db
new file mode 100644
index 0000000..fd7c663
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Data.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Data.db
new file mode 100644
index 0000000..79f5919
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Data.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Digest.crc32
new file mode 100644
index 0000000..7c2e59a
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Digest.crc32
@@ -0,0 +1 @@
+4050499673
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Filter.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Filter.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Index.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Index.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Index.db
new file mode 100644
index 0000000..6c9cb96
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Index.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Statistics.db
new file mode 100644
index 0000000..68b6657
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Summary.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Summary.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Summary.db
new file mode 100644
index 0000000..9b24e04
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Summary.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-TOC.txt
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-TOC.txt
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-TOC.txt
new file mode 100644
index 0000000..ae620de
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-TOC.txt
@@ -0,0 +1,8 @@
+Summary.db
+Filter.db
+Index.db
+CompressionInfo.db
+Data.db
+TOC.txt
+Statistics.db
+Digest.crc32

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-CompressionInfo.db
new file mode 100644
index 0000000..b8a1dac
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Data.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Data.db
new file mode 100644
index 0000000..f1c5c62
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Data.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Digest.crc32
new file mode 100644
index 0000000..7f68c2c
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Digest.crc32
@@ -0,0 +1 @@
+1995270006
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Filter.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Filter.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Partitions.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Partitions.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Partitions.db
new file mode 100644
index 0000000..aded0e1
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Partitions.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Rows.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Rows.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Rows.db
new file mode 100644
index 0000000..e63ee20
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Rows.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Statistics.db
new file mode 100644
index 0000000..e4fcc94
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-TOC.txt
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-TOC.txt
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-TOC.txt
new file mode 100644
index 0000000..c20f4a8
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-TOC.txt
@@ -0,0 +1,8 @@
+Data.db
+Filter.db
+Statistics.db
+CompressionInfo.db
+Partitions.db
+TOC.txt
+Rows.db
+Digest.crc32

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-CompressionInfo.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-CompressionInfo.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-CompressionInfo.db
new file mode 100644
index 0000000..2640f95
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-CompressionInfo.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Data.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Data.db 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Data.db
new file mode 100644
index 0000000..089aa6c
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Data.db 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Digest.crc32
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Digest.crc32
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Digest.crc32
new file mode 100644
index 0000000..151fc22
--- /dev/null
+++ 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Digest.crc32
@@ -0,0 +1 @@
+243065670
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Filter.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Filter.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Filter.db
new file mode 100644
index 0000000..2e1d5d2
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Filter.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Index.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Index.db 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Index.db
new file mode 100644
index 0000000..b3094bf
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Index.db 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Statistics.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Statistics.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Statistics.db
new file mode 100644
index 0000000..404a3f8
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Statistics.db
 differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f97db26f/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Summary.db
----------------------------------------------------------------------
diff --git 
a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Summary.db
 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Summary.db
new file mode 100644
index 0000000..9b24e04
Binary files /dev/null and 
b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Summary.db
 differ

Reply via email to