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