From f97db26f8e9989d2294cccbea8a06589253313f2 Mon Sep 17 00:00:00 2001 From: Branimir Lambov Date: Wed, 14 Oct 2015 16:50:52 +0300 Subject: [PATCH] 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 --- CHANGES.txt | 1 + .../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 +++++++++++++----- .../service/AbstractReadExecutor.java | 14 +- .../compress/CompressedInputStream.java | 11 +- .../streaming/messages/FileMessageHeader.java | 5 +- .../streaming/messages/StreamMessage.java | 4 +- .../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 + .../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 + .../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 .../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 + .../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 + .../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 .../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 + .../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 + .../na-1-big-Filter.db | Bin 0 -> 24 bytes .../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 + .../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 + .../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 -> 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 + .../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 + .../org/apache/cassandra/SchemaLoader.java | 2 +- .../cql3/validation/operations/AlterTest.java | 27 +++- .../validation/operations/CreateTest.java | 40 ++++- .../db/ColumnFamilyStoreCQLHelperTest.java | 4 +- .../CompressedRandomAccessReaderTest.java | 36 +++-- .../CompressedSequentialWriterTest.java | 24 ++- .../io/sstable/LegacySSTableTest.java | 2 +- .../cassandra/io/util/MmappedRegionsTest.java | 2 +- .../CompressedInputStreamTest.java | 40 ++++- 148 files changed, 528 insertions(+), 140 deletions(-) create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Index.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-Summary.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-big-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust/na-1-bti-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Index.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-Summary.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-big-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_compact/na-1-bti-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Index.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-Summary.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-big-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter/na-1-bti-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Index.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-Summary.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-big-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_clust_counter_compact/na-1-bti-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Index.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-Summary.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-big-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Index.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Summary.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Index.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Summary.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Index.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Summary.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-TOC.txt create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Data.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Digest.crc32 create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Filter.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-TOC.txt diff --git a/CHANGES.txt b/CHANGES.txt index cac380a6da..07b0630a81 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) diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 973c94c054..b4ea61f234 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 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) { diff --git a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java index be264bf23a..a591bb570a 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(String indexFilePath, long compressedLength) + public CompressionMetadata(Descriptor desc, long compressedLength) + { + this(desc.filenameFor(Component.COMPRESSION_INFO), compressedLength, desc.version.hasMaxCompressedLength()); + } + + @VisibleForTesting + 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); 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 a07e48fb83..a7d1abffbb 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() 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 cad192af18..9b0b5c5744 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; + } } } diff --git a/src/java/org/apache/cassandra/io/util/CompressedChunkReader.java b/src/java/org/apache/cassandra/io/util/CompressedChunkReader.java index 219f0ebb3c..15f9fa02b4 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); + 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); + + compressed.flip(); + uncompressed.clear(); + + try + { + metadata.compressor().uncompress(compressed, uncompressed); + } + catch (IOException e) + { + throw new CorruptBlockException(channel.filePath(), chunk, e); + } + maybeCheckCrc(chunk, 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(); - - try - { - metadata.compressor().uncompress(compressed, uncompressed); - } - catch (IOException e) - { - throw new CorruptBlockException(channel.filePath(), chunk, e); - } - finally - { - uncompressed.flip(); - } - - if (getCrcCheckChance() > ThreadLocalRandom.current().nextDouble()) - { - 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()); } diff --git a/src/java/org/apache/cassandra/schema/CompressionParams.java b/src/java/org/apache/cassandra/schema/CompressionParams.java index f48a68835b..a319311395 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 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.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 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(Integer chunkLength) + public static CompressionParams snappy(int chunkLength) { - return new CompressionParams(SnappyCompressor.instance, chunkLength, Collections.emptyMap()); + return snappy(chunkLength, DEFAULT_MIN_COMPRESS_RATIO); + } + + public static CompressionParams snappy(int chunkLength, double minCompressRatio) + { + 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 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 otherOptions) throws ConfigurationException + public CompressionParams(String sstableCompressorClass, Map 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 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 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 options) + private static int removeChunkLength(Map 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 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 asMap() @@ -449,6 +499,7 @@ public final class CompressionParams Map 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; } } diff --git a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java index 6e0f45bb79..7a82187186 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; } diff --git a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java index 81abefa043..003db6190f 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); diff --git a/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java b/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java index a37420b4ba..f449982f5d 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> 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; } diff --git a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java index 3ce195808f..48def6468a 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; 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 0000000000000000000000000000000000000000..6bf298681866e38c9424ca7069520630c6a20628 GIT binary patch literal 87 zcmZSJ^@%cZ&d)6**{$mhY G_z(baj0?~J literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f92f905b40d41bc3a9b33cae6f426b0ff4be2763 GIT binary patch literal 5359 zcmd5=|5H@g6@Lq^;Hr5h1BNoO55uZ}#=9)bw>IHEjG4h|1ScJ($tWl&Uldr7MKr;E ziX`|o)M-cJm)1!6;yA59I;rWXfPBY*phgidYonDJsp{TA1%FEzMt7ym@_2UZFFua7$Ks zN#WW}Te8=0$=>E%TaaClU07JOZi_P)aISSZ-+cGGkG7Mb%Yrc65h{=FOxfy2Qc?o!l^~ zNcyBo{IWR-+^x}6fo4=!C3Sp%o-dnezhUORn{rFlRpN!XT*=}RV&WL^5Ue+eX0oDP zG`nUx4s$9Nozih|3bDS(Q?-bU^F{VNLS(#-QR-~$z`TvQp~l8D9EP9C3v z-^oakETw||Jag8kik*8z*rU)w38ETkdqF0}&Dq<$2-NtP^nRXxt_oAsrn z=LjX3S^ZMam(LEm1c!PWJ-3F%P&myttGCS4ee5(<0O<`B&3f`)>(jH4O^wpt)R1=G z#dE<**}WC#%MHnUKTCt#q@7o9SH&?sN_zh(zh^M}UNWvFeM=+(j*o_V>$=@UvCbrB z*HhXt{l^N3zopp`AFToVO|<`(#u$6>7oP-hK;zR$U4_IJ?ud*RopyZC^kVS01dp1n?>T@=72z-*+Tzx!IY)B*4pS zkbtCtT)43)0dWEHN{A&e!$P_IvCt2vgNHvpy36r)S z`Fb%Bc_KJQ^(v5^KZh8ofB_6%Va@cYVpE${h*x?nlHdy#D&3AU zemaHXWT5@m=gu%4P%bVy9@hHkK;L(wQ3o2xV1Qe233jgxkikW5iD0T1f3P?gZ?0zU zYd2DA@S+&1-}=EP?j?q$Loe4DmkuQyH!P(?Ig)5L=)lmPrIjvTm4W`(0*x{-^p)G8 zla&t1qevL93eZb)9~d%|ORJx~XQc9_Q`^@V7GE0j7|J5UX56pJdpewuZsg+d2N+d( zOor>lP+*U$0{zt123n?v$5D=SQ^u3k%#k=2RYhRLNf#TVHRn#~CLI}QmIUqG$;jjL zSw=y*9N{#Uc{!t^RaXJhpZ`%Wn3@RmAN{crY!rcGX{3+e z2)1Lm{u!|Q^9;~}%PspYaEfYwM;*9Yl6k=5e6- zBz8H$J`|uP1tB0;yP&NIF^hok%4+2Mzo8q$fAfI$c_i>RkrTK+))$&Siq1G4ipubN zIkHTM_XQ3G;=gU*0G|!)TiRLa4}S)9{{c`e|K>)*Oth8M*wnJmLoMl z1G$!uElX|x*M2Lyp_8b@C)fJgtVZxXqe-vN_94;rOk-=k{;5$Fu3s=%baaxF3)X2* zN9QT>q!RziPpjFftAr$@YmEFPqrW-79O$Z2fAmb4fy{LDAHzl^xDlCDY2fyaWi>|9 z+^95WrZ+m;eWDNWG*$A_F+q|n`T#(#yldn(9b44ow!n0y#Y?O^s$bRKi#0x_9_(ANM3;C%5awby!+fkspkYMtYGx-v1&M`qX64Y!td>a(zI;WnJLE7tg${|Yp$=^3WWx@ zEDlX$BYxEu(T{0@_rVULpgeE)Fi}VzA3O7ch(g?aHiqx#d#9M#i)8%C43vfVI?lug zvELc?qb%H-9mv!|g&&<{LJdiMfMW3=2rtnAo|-3VH0~c@8{t|pGtV|=gf!s7JofRRvr!+qG#?z&Ge|v zz<>MS&04jlofbOp)nWKw3o&naHwQ`l;Ic02L$9M=uLZpYNFO2gIqdEbye+R#*o0ii zeJs#<%@ODcQapI~Z-${`rsfd-)oU%|Llhf0Mk8ibiX?k;v5}Ss*A{ zxSIc^(fq>KytEAFK$3Eq!`O62PY0^3O!|)v$=kSvc@_&Fa;VIG)xHmZy{qZ{54_a)jh|UBZ e3{D{%$1PF$g#=l<*CtsurQr{UroD%&r~eN`KPJ@x literal 0 HcmV?d00001 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 0000000000..37f68ab9cb --- /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 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 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b173ddad92cd33d861a8f50eff39b4ba6873a0fb GIT binary patch literal 157553 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9b24e0450c732103bdd22afb63db34808745ed6f GIT binary patch literal 47 jcmZQzU}#`qU|x2oL literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ecab703ba617cf8159f31f7a5ea84db94d43315 GIT binary patch literal 5315 zcmd5=`%_fc9lr~%;QF{aLW)eM7XdSB8t*PFu*S&QjZW*M6{eFCJDo-zY8F^w7ujW@ z4ZH2ggp8v@noML`ZA~bMaTh1S?cJIAso&Ev- zva{ds`J8jU_nh&@<)Oo~VE45n7N-A8=(n@<# zNq$9XWl2T8HP3aVyfVMoT~%0BP@eB7EPKaZa@gUp*{pfaLvEY1*i~}GR&ms2vzHtx zDt6{MY*l%-qpm~6g${Rx-C1_1s=``W4B@pJwreq{hSJ)a*E<>)&Dx`4i=j+M16|s* z#N(~4G5g-I67aVg%oN+0MLI?TX07w3lo>4_`Y6t;BOPDr!7HSuQ`jl!&Y893+FCPW zjlbe#tj4SrGffChQ=#bmVKXAr!;#*zh|CB_UZ_W;DIDp)4^F;yD+XV`bZ!|8DSXww z)hVR3Q(t42xijvOS9ersAtHjBi0?=){j?CGiF6vXaS$(EfhMu@$6lR_4|a#fvJtP& zshVec5gTe1JGaMSd-ZGBOebdCr{K>yOE29Fr`g2Owo5t z+N3s%T^F#kj2656R|~-O@j-Cc18T})b;qz^(ydSM2(Xz-@9wv%Ynj2it68|%eV%P4 z-GMkRwp=hOgG+$s+ml0KUTjZxs*V1a+D@n@@muPo79))e?(m|X^2*=9wA!$ zry5RU@PG?Nh|AIn`a6*b;CDqzIi=qB_?{yBKCS%#r9V;VpV>QK8>D}Fl$66;HQ0yp zzvlz*bNugHg8UOw;+81`qX6`M6E{sreWXzaKw5tnWB_(Lphkh-lGW%2&DnQSbx^M;P z|BVkqkQIRR-`a?#eBk?^cy==+9}t?^lQ^*FEDIjUCp%g2`w3y-OZqTy4;QQQkPLiv zi7J&W0X^fHFqXpF!F8-6kU>LSJCCfEMPP8hl&QkWpvS~aEe?Ln#j11~Y`elVlEE)} z*|-Luu-Ks_P&HKm$k3ksbU9@S=v{^4qv*p>9*JkoW2_>GLl-2J zGW2yel`6$Cye^lGY*^oa%fbC@PMvP}t#@0Q>4vMrl%O~5={Z#i2bNDukw2&hF+4u*d}^8e&u#Apx7fh!t-d^7Z+YA`&p z7^Vho7%<%JN5Jd`-*Vwp2`<}BoRSxCrO*QKz5 z=fc=O9;s*9Pp+>G)+q}A$6pRh^5YidnaqANZuK#9iQ~twx>Yd{#~awV#>Y$ymW)5% z#l|(U;^{f2>%@+BhTdf2aI+6{sm%WCueG^Z22WJSd2}F43WF!kuMQji4poa#4IoZP z7^e&tCtpS>mz8&NJ5vIPlLwh^5GUyesvVo!E(5XU3gEgMcrUi3f7mX)nQcO9S2gGT zl=3`OnS+bgv9AP~e!VXD1z~!|5GKtn{PHL%7YTjY4m=l3ng}VEFT)JI1--+-$Z~$~ zDzHTg<-j?zvW<6OEs*K~Kjr=qFX-2(U6K5gx9U#d4jGt2;Kug?LFTW(^uC49jFfUI z^{1lGhEYF@+&GA*MM!xA;tK_Y^&eY z6aowu6(A5p&(CrKfk}KLwC_~_*N3^V#sXvu~tdaRj z0#_2~X-$!<|G+~jMmd0F+7OmQr}wj!fH>`8O)~v)FT*Nv`Y&v&IQ@h@*)wYas;2gt z*Q$>?c{%S-yu z%l|pPo}G6t#mCM&w?`jlI?RkI&RuwBWmHF;>%4k`(tlMpy?Q^LyWdaQ4tMZSUJu?{ z%P8H=Q)gDcAaqav1}(=c`QI*!rI(GVt^_1}#$_&+-$|C`@ zFyzqda3zlu^(B+}je+NMV8L4tJ0hg$HsjpC%Q7!qs6$6;@X4S_9KM34F=PsVC-LQ^ z)sPl?Q6M*0Qf}!8b_b^3)aT+3D?GosH;m^u%NU*m`n=o6s~H{~KBzO)B43=}se6;j z%;e^sM=aADO5d+BFD5MSFF=rwJ{F+QvY3#lA@ErpL6^p&6?P9(&^6U#i`)#5PSpXc zCPVJ+v#w^R?`l1M!`5Ju(Xnvnu$hCa;bwo2$u01p1fN7 zhXjthDAPT|q~lIXKlkF6CY{m07;JAf8Z;;QS!)D;9i#OM8fkGlxGM z8N7m9=G%55H;fo(x R_zs|L+4vZ!xo&>k_dhK;k DJhulc literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..44803b414f9bd8a4440554bea0b31db1c3e6b457 GIT binary patch literal 738 zcmaLUze@sP7{KxO_3Zq0=4JjUNj#;*bm&g)7Y(IzL4{+3jnYz7Pz`0)(hwAmE=QBJ zwbdYKHnarcKTt&B7AmwE*Yg}i8D2Mh;eFt}`y5YVju;6cHc>KBIie>k3OtQ%rLiaI zq7ynkNC|P8Az`y$7n@|#Glb0IIc0)mOaddur}Xl2&pN*#!DJuDc_XA~6c}lInoX}6 z2pmfWNDWiRwDpuwHb*|ML!0LKziYnVEw&7$a-P^rQmX`38$$+enO zO$DVXqsg%`5BGnWoR!rsCO6%2KlW{QH4RkG2h;EpEmQQ?YScD)6K}o?7n)jQN-K^g z@6~gs$wxoBn1m$f=k12BrhslFApc{ERr^o1O~Kr5=;cy1Rh8B~nu4vZPE#m(@@>Ke yW_WdXqd7UeXfLQH2aNMBNYSJ2E|R>7;E$DtATN5P?m-fTM%f2Js`W)a3(r6C47&yBU&A zXZS~~(d9C7Q#9L{Lnjkb0nOShu(DKYQ7w$tMP|!0r-aJ5o{PKjd4KB<*B`Cc^K9Qe z-xr_nJ$%2<^ZkCG&+Y_4Pz$q1ihN>nSuYn+F5Bdy5`=_gA-&PQ(I7QRHMKTFjpT4h z4OY8ku+};a1zVlAQoGe=w^_?1yR*(&*VtgQ8(UkxGark7UcNwr*Xx}Lk7JtMH+M1D z)Z)ev0!(&c0_$k3AG}y^r%KnsLvAt>EHL&S%kLEa#nQ z6?c8rK8&lY(3&iC&?NOh+#{fHqjrIs4HC zXV7Ia=nZjb$CKzb3Ejob-(eHRJ&AtLt|ONCE5w}HK`{brQUKke1f|DgKjhRk&3-Z)Sq;;zCt~DVx)+eEeo$6 zpspz_r0bt`mz@f%e_u1^eN9K#zi4w`IZZwY6ZxclNXPM(w~4i-Zw}ds!=7!wPRFnND)Jf~f8^!jK0Rq4BegZr_d(oY zL_lKMp=e{KUSVqqIM3J$c!5J~xz` zx?H4vYjywdIC1AUV`sXE&mMZKhxXTfE^Q=dF3$8XUYIT*F4=VZ-p)A-4u2i@;6LYJ zBKeH3`hUr}wEl5ta^r_JF2|Id3vQ5-bHVKp{&vnadl@C?QgSXbp_r0$^^)5m{IfY1 zvwZ*3`FbJdP^X|N%>8U}$JIa1Ma2iV%inMKN}z8>*P?Yh95>QsTjj#?zmb{ zR9{?uJR{?g%&g_vD{^x4l$vr6lzE`6g@5;cFuQFjo0YO*D=#hO#r>a2UIIDTU4KPB z`_nq%r?tL44Lz6gO($JXHOI=|2rv8VpTVjPnX_EJlsr literal 0 HcmV?d00001 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 0000000000..c20f4a8ad0 --- /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 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 0000000000000000000000000000000000000000..1e69fcd45e1cbc95223e2bf807db36c8f179f5c5 GIT binary patch literal 87 zcmZSJ^@%cZ&d)6NeYILX)o#;0gY#Y1(q4%ETSX6g3ZLyWJXa$UgTwkT}3ju ztEmPPF~&3#+B6fD5_e)V5v-|699`Z~S4ta{D}I@7p^01N?2D z=RD`!=iGh1pL3qeaXfd77NsbfoNUQSMB!JdMx zg_XN1%JOnci^|HjIGx+eDvEYEcWo~&&VlqAV^a*6RGq8(z+$eca>8aPBMq@-MwaOl zA5C+)Uq4{uKAubke`7551(#MINadPN*bL5DaYF_{-q&01Y6xxmJl}0}i1CRm^gUQ2 zz-Ay{XWI;pS(ZO>N-%FT(B>I-@QMlkp>xJDG*Ju1`RlwGndBc?V8%$Rf8B8GgdXu)T zs?cRZ+bTEcc0t?TJ>zHgW#ButD2cX7QS6OgGRcY7N}&#Qn6%GIEzz4PDX*22MrAf> z&!4J-VJ^&2ta~_VANsl9Z~A|{CiUMS9pU&2mARzjWq7neBjmhV z9#)l$4XMnm&!n7p_yIanR7cbF6atRL==eH|iFf3wm|_kT{VA&0r)MMgzT|>}r(Bcy z%wr+thIIa<@FRah_#0xz8bA$XbucxQp5!?`)&(wP5|?QZ&EE!MfRGU=tp|AvT*uq) zwT9Bo3cR4*A{vt6he7d?g z?>5rQ&T(|dPx9&#ph)pAQfN7CjI|7Esi06>Ib=t|Bf;N;*2F|zD8l2)JP*bu`Nxus zK75>27mSZ{xhziMR}?anQ2tjMGu%c1f}(ctOicO#q2o@q9tfvM*K?G>?qnR0uC;EX zR&iZB-`oWCs7Rc4d9t}MRnxRVOxRG(?%t{>uJR1To+MTF=uaQ%+QE9mY8{iz}T z7`PGP5;Y9a8|#8~Y9%)uC=nF{H!kMuM(K_F;gGvhiu7iezwWZ)b)h7%+n9|XO3=_7N z!mi=9**1dzx_n3IZ&t9dK8qdq|D~B73+b*YV=sx zC6jJ=Y`M##H*?&gDm*gwNBvTCtn)ksD;ObT<8V+a60Upe5VT<9kx$>-hg|~~!?v55 z#(f3CfhaF)Z|Yo!;NChOxr|3&lg|e;)4;bSq)EV*p_%m%bpdGx@%?5HUVMu$3>{yj zZv;oH>LA~pX@SGK&FA3L40N_BI}KiDyBZ>Gt#i3xXe8D zrI5_*PJ0^Ct)2B0b^PUIF{c{dlN{qAvwwc0TxZTn=*rQX8)kUG3}j739iJXS=e+4n zXMKh5As#a4i{-#SWj#7)XdIJLM(57#UaO6gx#@i;5i08Nb|Wp1XjmGN#rpe!yNON) z38h6yO!76x2N)&NxRDu;Nu!XsfZf__gpTPvN|bUVE6vD>q&kilLfKb}8bpFKiqS&} z|MN5+y@zX&9uuKhTSo+H2qIrr$mp=Rz{k)rGfXs})mDSY2;BJG-pNd*(eQN+Sg=rv z^S&R1e;PWCBGzu#2=J&6-K-)_MmX`IB4g9!Rs-t$`6qi!DDt>(3|hYXjpTV-V3<>k ze?i_JEE1SzAg^aYb&8gHEgSTnJPs8qCOi_`@5Z`)n!+}uI{u(Y<_9l>GceTWfZ``} ztFc68sSa`FGZd;KHeB_Pou2*JU0l&Bd43JYDmjCFZ}3pl3+LIU&r98yQmv65D&cI&4`&$VHu@k(&? zS}RL4h;akbv`4Zul>ic*dl(ki%)_eza`7#U6&@1Zt6Q8ze^ZN+SJsXRvoC{gLN#sq z_@-6!6|c@DF$WI<0M)@yIx$U)VlVjh1|1hX#MHkJnlX8lELgH?Daur}i(iJTiDp(a za~h+9hb%bz8-#=!JX$_r=S#!4T+Hf(q7>x-Wx(tjv&2x^Uq`JoTQr&2opBt<5_9d#iO^%175-A`?SJ&1#%(E RX4sL1-yZqt|GxF^{{gtXHEaL? literal 0 HcmV?d00001 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 0000000000..ce2e2f8f3b --- /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 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 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3f4635093d4695cb88326065d24e47dedcbd2a5c GIT binary patch literal 157553 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 DJhulc literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6992a68f88e7f7a10dd53ff8f1d64ee800cfe445 GIT binary patch literal 738 zcmaLUy-NaN9KiACIrT2}F3EV ze2Ni+ln|#85;ppo#I!CuN60+R84i-;BwaK)qgPf9o8nRob`Ej7$U@4jq>D|?ve^xe zz*sRr8ki=g%TPjDnb0W7>x3itsSFHUsUMN4S`nlV6ty|E&7;U1y@AtC9unqJ#LJH$ z!Z~AxfLwgLQ`i#?Ih9U zy?*I6`RHdKla%KDqK)fo3NT{<u67>K6zuHunnLN59+RNG v-FQI>FWX9*$qEOGc1YQ+yY==4oyK2fkf?qBCsrh@tEDi$b~i*hd|oKA#-tY zm}O*P)u?EqxVeNFG!kJdFds|Y!1n`*K?&lZ-=5VYONcmSI)&x6co;ts|~vH59?*I^6H_Y2!` zTv3XxOu_bBh^=DgtA2*#nm+6RH}(tbv2|ZyPkkFZq8~dt5&Pwx*m@Io+79fj!`Ovk z*k$3^_BXH_MeJ5){q`Ag+#Tih#6BWXzo0lVm0<6{>yx;zpg3QQ_cMPATQHqN{S^wl z{uLL`pt$lx6SCjWZOH0k53>Kb1$oMN2(s3U*JH5p4vL3%Peq=7GXiBwE*;rlb#h3+TO1U-iRi6Qqh zLMSB^>g@`(|K7{V2{xGhn^Irt5e0KoN*RQ6s4#rhot`TT| zW6mS!DN#LWKLwg}7hpU{$nS*?NsCA8d7AdgRv3@mv*9lEOY`zNpl4oPvH&{qf^{Es zM%jlg(8lXYOQ4H(u1tllh(Gu$^s1+U!_ZCNx8*|bDc%+XeYUybbLf!+{W-v7R$zHI zbVYVH-2bGl@Q`o+OWlZPlNRoO-r~CX4fs4iw0BWGu;3uBjlhby^SXTK(a|;V`6z#N zZiep<)hi*xnV`SAd4K)az?y#KG+Uf1!2{Oy zA3r@&#f9x^;gs3wmvTOd{{3q0RIjCf-;kHgAK3CsOMY?xXOb6R=H*Ml z=+&Fn5uryq)37H~zOk4G@$adkId0Zp{~N4azf!c>tzwnFv}AF5$?94QdG4MZ5mt#+ H&)xkuY@v%{ literal 0 HcmV?d00001 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 0000000000..c20f4a8ad0 --- /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 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 0000000000000000000000000000000000000000..7fd6a6c31a6bfc2465edac2f735cc169aff4cf9d GIT binary patch literal 79 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3df7cf35958f0e7bca90beb61769818f39735272 GIT binary patch literal 7079 zcmeI%e@q)y902fpcP&3Us8C=V#i4GnO=8NgF~DrAKnK*Afc$WvF7BY0!2&J0c9Y@E z%w+$N1#voY$$qFykg#QBupfYP`(q0Jm=1^;&d5@eie|=DmknWSsPCi=-|y2z;~z%j zUGj4G>G$>e-ralezPWN7r{U(eB)TKCY^H^$Wfv_1$0fvYsSbIoNo*2p>m*aH=yZy9 zn=G1abuLr>PM1_7+ay`Cm5Q>f-c|3gOR~AO<(s0Du`kdQB>4UQxyX2;-G6H@>6m`t zc7G4w_r6c-_Dx37a3?Lwru;74SS#&;8*LZbf_(^ns0|(j_92Wz8HX{}F^*uYXB^Eq zmhn=?%NVam9cVf;dTIm9``ezz$VQ7AZwYpi}3|)ehK3}*aCBY z;Si2%DzUYh*dgn&Lz(`D-NSL+2zG=Q`@X%{hPSX6KaFi1$9^ysd*xAVQx$ghVeI_# z*rjpUTjH^uPhz);*j>!{9kJlJH!+*ifcb=M-KU^2RW?Vj~qTHAupPXLDt*wc#O7ukK(a|i;f(K8GOGpJ1(O7>)qcXKc0u%S8ep5__iMn$S;-jA|IU1K_2)3U!TbVbUleK>JF?= z%tiZ|`{am*{8Tgz<#quik)uXiae+^r|m6t%FV- ztvd;wyXD0r(3Y>#HbIviZOnqMO+Nb=^p3lcQ_$@n_7p)MFF&{(`m@f~SD>fQjBf-c zt0QX$p=%2Y;QS{&rRRe4U#Uj?uj}Fb=Oxee_rUjg_lXTHz=Df-_5*8@t{AM)Gc&v3 z{n7r?aR5F)LLZKq$^-SoI#0En2G*6lJuCx9JlB2`_FsQ3`UdQO^jLAf0o0EZ+nV6> zAimo?WCHQTkEaaqekI*1vbKTvBbDA{m=9!S{xGZuar4A?L(c<0aj5qMY|k^^+$=br z?PZp(4p6_fW?;k(eB|rN^IgCf-Z|C_+v~ZMGM>E@&c(fJx;NDH&Zzv_$HuG!8Y*%N;eAKq!XJAh>r_$2W zGcwm?toEHI19~CF^CjQhmv@c6FPKc%e literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9b24e0450c732103bdd22afb63db34808745ed6f GIT binary patch literal 47 jcmZQzU}#`qU|%H)|A(py47 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 GEB+5`(!!$v literal 0 HcmV?d00001 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 0000000000..a199ec317a --- /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 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 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aded0e1f0b6b4f667c86ce3a9b6df8f0fbeaa91a GIT binary patch literal 63 zcmWe&b}%qtVR#_O7$C`bfrGQ2)0|O|^Dg63P9`QxPJO1c42%X0j3x{apa`W|p)>;k DJhulc literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b0aea85181ff3c240419d4285128a29c8b283dd5 GIT binary patch literal 738 zcmZ>CVBlb2VBj|}HZ-+lOUPzt0CLx#0}_YB zfW)z*7ICY}9 zX*)RXG@BM^1qjUsyU7`-q2nx&m=g((J8h?(+8~due+(oJ=L3mrzk$T7Mj-LUnSs&d K@P&nFZUO-E8Nn|A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3b51c1b07725ae12cad34d40181500b47a702e9a GIT binary patch literal 7095 zcmeI%e@q)y902fp*A_|#9TeCGWa#+ekeI??3`n+BXj#D+L4LUUV{u1&87$C}Yd0Cr z%uM!}kawq#>E6S8#6$Uq(7oF-G4I`;#O=pqwiMKdGSWka?R>N{!W`+b^d{KIIx zOJ44M`hC6LyL<25H&>41)ZE;bMt6jk4YcsIY^O!VaY?CMmP^`X6q*EkooKWRZnxlc zNP^K(=P?#<^N8h=LzF~Eg&=wAJ@qc9D4AMYzOo*Vdy*a?DG&(EMkNr^rlt?>dBSv|;BT#4bLC zT@jDHF#+5CAa^q;`EDzO=j57oei2pCs4N34a`JT{8@8|JEShVk%z z-xPF&rQ|yFg5*IopQ3Dri!dIoDjR~1%}+<;d9nWHJ{V6ry89~hvX!O1(91ttzZyF0 zV%>4*!i`ULL0c|ouZONY)R+ftPk-ZH=&iS+CZOBj^ID;gR_#xL{;0F{dFZLvM@oQ6 zMpW$pwB2lm^PhMtPKM^c+>8WX)WiADi@qywg75R=$JVw0t31TF2UwkU!B7T0J-r>? zAI;Ald*SmV{O;I^BG6vjd7|YtU|snuLlSW0_;1j_2ALuy-&*xEpVICaM z&Pq#n2Wa0~+dn)G-1WuSsczuYhhOc1=j%I@Ig&pgCx&Ov%@hNdZN71P=e#+0u#VT@ z-{)XF_>NrtzvNuHV83&i{-ZfgV@l42E|8LQq07Pj?VM}wFiOs)S zXLBxM`}*0l4P5-;E>2@E_;}g*eZTHY?9)5w`wh8-&du~fqc=l)*+lK2g%o{BgYSf* z+^yega}}aKk)6FFCwFDus{DdNrKVg1WgIAT;orR;(3OiWTgqakEZE9JOL=hrXOfpt z<`qi8=suX%ag*}vbox33dOqcwNtsNyK0x0HX8iHrV710ZL2}m#4aS=4bp_Sinnd!K dTXICTRcKi8X9qUBwm3baWOg-dX>`iJ@Cy# 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 NzZ%_}eWF_I{{hCVBohDt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..68b66570f52b6bc759f50c6fa44a8820463fadf4 GIT binary patch literal 7079 zcmeI%drTBZ7y$5{-8&v9T;TwfBhpquEiuPS1dMtWPT`CR$fIIgqYJkY4BU~ulOo#K zSp0_=O0|}n_-Hjjf<_`}1$_Ns3w`(`Mzj@!$w?cVdaY54O1RFJyYPL}CT;ph)22Jg zWaq~>x3{x9Gy4G?$7#5U5=Re&*0r?qv~HzU;JBCwF3}-xFp1S-S-E5?6P-@cZj(im zt=whG+U%0@WSb;QwtP``Rk$h~c1bqZ*WJrG9=U~{Aja$Uj)z7Q?XE{VNYluRk2~A= zj&oz$p|Qa*8g8alDa!Z4!dkf=Sm<@3;va+mhgyHbcMM=0$T*0xj&TTMJ>zi3k&LG^ zp22t);{?Vjj2AJ^W&9fB4UCm%3(Fn|+U{gLfK8a^K^8D^7vuBT{4~bfu?6P*!af|= z6k}^su>%%k2QuRgdXD3|KI{+=_6s|(4Ig7qeI47_kNr|2_Uwb$rV{M*{n%M&vGb#_ z*GFSJS7A4Z*e%Tb?X%#xC)VeQbwpx+MsZS7guNfnPvW_W;(Q@q&-_=|Ldg}>U!%eE zUvvEuifg}UL=O0=4LPXLiyS;IAx{~PK-Syvdj=cA226ESD`2Gxbq5Da6VNYOxV$Ru# zylrMH^4AxWp!qqc(f-PRsJ{W@g0U9O521T)FpO(zgO@;S-yA^W4RBP{!gyepdjvYz zvg|SRl-M4$oW!>{Ld8bJRjv7s8i529Pm zJth#3{c_jv;=!<-Yb~@Os|xWTwISY%j31 zG=cv0rCohPzz6OOo^1g>f9P;Kyk7Ukg#Pr&I5E6?X)Fuay79^L?UUx5zBb;2f1iW# z;4@0||B`d*eB(}G#*fxGjj1^oxDD;w{xzE)2KO@nsb2(MbwXA_kSjN@n>Dnd<}Z^rE#2eN7>V` zCsVw!_=h_kiS)Poxqtj`uToQ$C_Br=N>g#s@{FR*)e`y3Jvk!Oh?U8IcH(TuCc8_L NvmKS2s_e=){0b|HhuQ!D literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9b24e0450c732103bdd22afb63db34808745ed6f GIT binary patch literal 47 jcmZQzU}#`qU|8?IiZQ^5iaZqokw+GJ?S^KBn$2D7%*;6lKOg6>`TX`;d#|-0 z-?R262nn%+kObw~Y_@#(ZzFt(LUT}1a7buac!XA`cO{_3R&w`gnj(k^ge0FZ4aooM zDvDWTbnPe`bEI%LG4e%S%gi0^UD7;40^Y}hZ%EOnEHALIn>cr{r%x)=&em1-Nf~qS z*K)4AQ6}k{fWkha+^q*1XPz49kut}EdwIVe;@o)>{PeR^!QCUodnDxuWKAHrox8Wy zoeY@0b*sB7w4HM*fgTAM;k$7r1*xBHZnVff!ln^UF9|d)sDdWV_q+O}s&K&xTXKT> zq@?Cg7|735R7bQ5|HcmXn(5 zsDld1!cC-!txhP$(S9(%Xm(2zQ~gp&B&mshR1)d*25kpwb0$om!)t8yDPNO9rk^u+ z$fOXQ8;$Oyeoi)|=hWEhKT0hy@H@F8&Ef+Ik{Yv7&=^aE(OvFoHNvtuW3d=uT6)jD|6PM?;f>b7n19qUUxt*Dik3K~=MylFXf*(?!_U6V=q!`Q!3{z8XL%|@7rfVoc@ z-JSEm)Et}&%Q9C7OBLowkgc)iu2#zExv4O-<|%4Nf_qyE$nmp6W4v8@5An84&5ax- z_^-=R3R{`&wv1>)z%p!NWvK{jaGrHTmtW7g1W?BxdREd$kt(x+(+*owWM0gicgYz23? z0O_a-7u)ZEu3o}gtAx`Z5|`HAD;gScD?LC~4S@HZrAxL-d2kMw^H66ayW z)@?fqtE8RxoUs=u?ckA#t#^$_IL_ba2B*u3qx#?sOwgheP8?ew-H2Kzr0zUPZ2e0^ z=p63?p$Os!BpPb0g2vQ;i7CeaL$r76+hAfzjUn11ce*n5Lx355{QD^)*9&eirF2;j zsqr((&h2uxA}KV(UJKlP1&8V~QOdLn zi=wLK0y@}B<8pE2FJW1o(J+@@keFbcHi=2)BoTWl$qlm`7!aanF1?vLgVZFr_azI% zTsjbh)0Lnl#fGQnRg?OJI2cM8q_002oHz7~oEzl$x%S_?3%?sq4q07tS(2W&GnW-} z$m%g|FQ{MG7K%A!oqinXIIs0DP#quwW?5GrL-mhiMlpx1Z}hBE$|lAs^m_||Lm_#H zp{Ds*3Tfi-e;FdFAuI_;TSf4^_nZyz4dK~V19W>IfyKy-BdIU`0 zda7`Q%?sNeRzREo_I&tj4p}O(c~O%kXh8Hz*@m|P%rb4_Gk_=dSV*wQmE(7lx{?d_ zL@^BO1XR-;D~8eq**o_i+q5(uG_QL(NK`bfri`;oSHTQr-r>ql~N=%Ckg7N$qDh{4REj~u5 zV)QBI3{fI2Gk0OW?T|H}NQ(i>m6V4fXQm||wZ-ltjcutnKy9g8yfg}EIcg)RNlb(yPcWPSY$82R-r3A+OzT`@7O7p_O&?SU)M8rKfvQ7iCG1kPFjlfr>g{N%9o6GZnV=zgW5Hmu!v~*|oV~DY#@OmV$gVZ5kjxaJo^n zqHXX=k}F%`)63(jVW1bLEAfq9DJ4`%4K|;Ba^()6ePTFWo|FwFNIaFTes1A9sxTxsW=c9X=WqhgQ} zN!a>zJnrE+G*am?$Lny$NzGavZ12B64fe?t%)vCaT?!kXq)XtiLVYCajtC={X)S)75-RObye83EMGXZZ2OHM)Yd@+{O-RtDhjoaApobw zT$_SL&$24f#gV-h)sC2IIf`|z^U`xIdjOpMAHYzIIrOF{KjXw)Z?>(s7`dFf-hlO@ z;In-Q^GWw>6h>sPnG6_(9%A8{b?rQS`2*77z9R&756ipsq72ai>==zj(Wk=MWjk^z z;oNKfEEZes#o8i+f!czPq~kaMTBgsKB_?#oRn9O+T!eJoDuvvYZ^e2Gw7NpVS=6QO z$vr4=jp@|&C6oG$3%i8Wn9kSn?z-Gngf*sfJHl$Yp9ofL=lN);#`Me6;4p=znH9C&rGmzEO~u>n@^hx;0w=o`*Bk-ucFhry_A1<5=}aj;GB~O!_KL3? z)VUF`P!7UMs}EZ_q*2R8 z+4L0m`V>1VZ3G_wD6oRkp}kK!DI{q4>r?VtX!5@mjVCkYs_-}lfVwV$4rSWR4@-Nc z5l}D*jvS$GY|h66x@rt;J)TfE4i@94)4?%Sg?_`o-T|PP8?9JdtjaEOht7sSwy7TC zW5ss(^oyR_-k%KD@g85FigI{|Gv}8pJR+v^FLcn@4~-GZei+R<*bn99H9mNkekrru z4O@O4=$BHJ+>2Nls)f3K2s!InXrxZ@vTDz}z=5o(@48P44I1IBr>QbYzm)Zxkb!ZYgt(|Pd_c_eji@$MfO?iw53GT7{gw@(dfe);aje7cFCw`?gnIKx9^7f%Gskj4SLjM{{lUR{fm2_ zDwA{tG3xyLa49uBeIG8RylMF!a5w1p2=1)EuTV=`iER zmcgMnl$S*c9ge3T29jFCnJQetSGcF7GI$h*HC*8Vm0RZT9{wuxKkYiPXfJd9og?p& z^a}4I@2SkI?Xsj-s`|ojBdAe+8=d4UL$$^Yx>%9y23^?ijHoiV=|HutYDFI5_(>$h I`wHp*0hW^Lj{pDw literal 0 HcmV?d00001 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 0000000000..7f68c2c8f4 --- /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 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 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aded0e1f0b6b4f667c86ce3a9b6df8f0fbeaa91a GIT binary patch literal 63 zcmWe&b}%qtVR#_O7$C`bfrGQ2)0|O|^Dg63P9`QxPJO1c42%X0j3x{apa`W|p)>;k DJhulc literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e63ee20c95cdb072e6ed23a2eac94b918caa328a GIT binary patch literal 738 zcmZ>CVBlb2VBj|}HZ-+lOUPzt0CLx#0}_YB zfW)z*7ICY}9 zX)8GHG@BM^1qjUsyU7u#q2n}=m=g|;J8h?(+8~du2gTUoTp)4nCy;nm4YcRm{XR`J{$VuU zB`^0rd|$8c-M#nj3os0$VP=mc`9$QhPA;rmw#kKKn7BkH%_(i*g?gddF7nla%OyB$ zlEB;SZa#mjTP%@mq9oc%1<76Gu5mg<$<);Nb>Xq7XXFdS`Fy?^eGJjI-PlQ5Cl}xB z?P7c0nbwX^kA=(OcDX2r^1bk&t@H;Ta=*|K7(?KP+CasB4x$`PIfSx~au{U;>@Y9(Jv*_DuVT-C96NRxdr2DheFw35D|Yq)?EI71 zrP0{yW3XM1VmAxeoz(mtvf#Kk-tXCUMB;x!abm5&K7i*Z@qUKlY&l-f>_^y~^*m~? z(ct;7xpWrAwP#w8gMREn4k`B`ht7z|^JXHE4K_R?d%|Jlk58vVvneOg{>r{=_!P#u*akE|xc+saFs^9`T@9^$as-Vx$XU|>8-|#Fdoho4?;&~C!_hiz;OE&7>_&h!Zql7mlyRwr;M&$37vM) zehfNy{j(j=mM_xRLYEz^%Yv>>e(OQ#EqC-2&@CTy6+#~=-M5^&g4E!W}r4WCC`gX535RMcw(?W2X}diXww zIcyr>K|KD$2_t-7NjD0Mn?d}6N^dgE2eLB1A2fitY2@31r-2{Y-+dJJ=Lv6a7M#zH zGD~MGXx~)TH#831@#WabPT*6AUhjte^_)%}&Yp`CGHRtL9w}bg- zb1q`Ny6a3W6Md+I(VBBUDQFx0^=uy)-7f!qLn(p2nO@w)r(9X1{61!r3(5OR4!#$N zGIxHf%~pu!czXJ>jLhX(E3$KP)tY(_)Onz;g@5;cAn#oAwxw=X>V~bpwA2^(e}l9@Dc^L$_2f;)QHELi$NvVa;_C#-WfyAs%8G|_Dz?^(~@o=4^$;2R2TxldZhoDaRC6O3mBCE literal 0 HcmV?d00001 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 0000000000..151fc22029 --- /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 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 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3094bffbad9302ccd45282d2175bbeb41e862ea GIT binary patch literal 26 dcmZQzG+F7zgnC(hH?RM+>Nw$To%P$Wl~9WKlb?3YaA@US{29=7lzbQE1x6A#-tY z_=On8jE<4`vX_Jrbdt$7fjRx)277T+$s%qMQZts%{f}j%~mJHU2tZracVs!_rvLKi~60#dSo2;r^t*LccYgDgSt#^7< ztFzW;E!^&Nm3o{mkIPx6dVF=hx`uj}$JX3*wdh##tLy}6p-^ZlAyriN-rg;?jX!#) zw_7^?#iZh&98F~5c2>hBd|g_2hsQ$;8y6I94%&x`b`WV}ILC60s8B7 zxc_w*&O%)Ix)mIAvm30h2!Z3KT;Lf~NnoQB_oK=F8^n|QXM$&6v4H1{l!ND;!}ZRZ z!1c~)I}QC;_ zw+sB;nT6ES{1fo|D!py|k;Y|9BkT{ke?uIN>l))$QY$ZwzKbW0wl6SF9cN#C zhk8c(06b3#4)b{$Pn1grsgv?DVL#6@-hYS2(~i7#jr#E=#mA}VUs|`EI{SR>G3xw{ zuN|Vc|GaP=b@}0~xzsh8pFKmp?T>^p>ejEii>QxObj+pxzPhVv9R}+g15~};D zYgVnI&%fARc7i_tVrZX{KL3&{aOHFIeaU}xWfQUN69apRbs6W(CDaoWJLvi-_uBT; z_eboLNn-`1zrOwBrca0srSA=Th~r;wy+P-1{K<5U&fj#QxYtbjr>HG%`aVeQvJF^C zJpG$7GhMHY+eIZUB>q%YFq7s3xjDZN8cEzX^6S7W#Lph+IZDU#VlY3K?&tb)duJQz z-(1}{YE!fMvy(fdTWgt}+GqdNDvzf-wL9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9b24e0450c732103bdd22afb63db34808745ed6f GIT binary patch literal 47 jcmZQzU}#`qU|z`!txfzhD;|Ns9D42%pv*;M%X892Dp^79pv5{rPiijjfQP>~@Yo=tmWeWh>0Ma`WrhH-hJJx*HUMo~7})>- literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Digest.crc32 b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Digest.crc32 new file mode 100644 index 0000000000..654f52bb12 --- /dev/null +++ b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Digest.crc32 @@ -0,0 +1 @@ +4102718625 \ No newline at end of file diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Filter.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Filter.db new file mode 100644 index 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Partitions.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-Partitions.db new file mode 100644 index 0000000000000000000000000000000000000000..f297888fd9cb81f9bc4bb651e98b3e75fd1c832d GIT binary patch literal 60 zcmWe&b}%qtVR#_O=pfFxfP?cthxt8@ySq7KoR(jrUMIsAD|x#M`0Bll!uer(VY69X*W4JGS;T zsy~0=F7o0e+`c8Db`)RzP=~xFqXl`-%LL^1bNK!Ax1;yTsRN$F`kW#4d*sa#hmij~ zI}4hh)`osx`Q4i9FfN3aqxm6pEcbw79Gf_1CMks2s+<+wDWpzQ%>mpvQ%E zqV?o&(p`b^03p2#Ixs#8&F2Z4mp{Syq{Bbnhn_M!?HKg58+r4fW3Ch)g`T@|Q$4it z=BzyEtcEpl&;?PyEr4G4%6|~L=J)1Q=)>82BA_qURs8@x^lR@zU~am9eg||xN(x;6 zTytg{T>qSNrv|QnUbf#p4nEHh97(JI7Hph-2e2ygvMwEZcz7cmAMr))F1UYq&j=h$ z0`-0Bey;chSe%` zMLtbUuLkj%xsE7!9*B#5(4_%!L*IX$>w&-8+j0c9=Ud0zI5?k6vW!i&png?;d-niv z{jL5JO~9ub54OPe+RsM!#*f80-PQ{u$-wEWpTDjgGqJj_mET}BW2GvuT)4}R<;EG==#U!|~o`@+4*QUtfZ_C8W z1)J&r8?LOZ6~mpiPh!t^y7pKz&0NwQ8a$&!iL%%Je*<2KZqU;Gh2%yLy+=1{=&{C( rL_CUGbT^!k>F@u8CSSisvRDhHVtsDTqJ*3cWiow|uudxe;QDU>HBXOw literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-TOC.txt b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/na-1-bti-TOC.txt new file mode 100644 index 0000000000..c20f4a8ad0 --- /dev/null +++ b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple/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 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-CompressionInfo.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-CompressionInfo.db new file mode 100644 index 0000000000000000000000000000000000000000..63039e6c7a77beef2b276e5563bfa8b24ef26ab5 GIT binary patch literal 47 mcmZSJ^@%cZ&d)6CU1kb&WN?+g_N sStAt&>kB6y09nRB)~z`WDhyI4Dhwq;3=9vHk2t6@1b}rZ@n38L00wg!Z~y=R literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Digest.crc32 b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Digest.crc32 new file mode 100644 index 0000000000..e85ffd9202 --- /dev/null +++ b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Digest.crc32 @@ -0,0 +1 @@ +576034138 \ No newline at end of file diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Filter.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Filter.db new file mode 100644 index 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Index.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Index.db new file mode 100644 index 0000000000000000000000000000000000000000..56f29df1cb9be118b9993063de9405194522e236 GIT binary patch literal 26 dcmZQzG+}HhVBy^|R8-CxDE%DziJ;}*A zpZh!QJ?EZtdQU0{f=+mpQdl9fyozOs<;^V1f?)haNUw9PwW#%KWtG!Xsk+^2t;3~S z9914m-bRnJ(B*KtoQ@*Z<*D{m*VQ^*)~3dr`9~8ru`ier2m~f#lSF05oo!<4=#zK5 zJEdb^jw{~r;W!py_D_oazzyr4ntOKe{Y^i(OZY8R7}OQ^C`3n87oLiovrl;(Vu# z;e2Pbo`&{|y+49q%EkVzH2WaF?l%+o?ZPhb?)!_tJzwGT8Sa7SDeB|y(e|P>e>-@~ ztPb#ZXXaB&b5FqUtMq~43XRL=23Q|*@2Y4T*EK{hp;q1)g7HSwRX5OhWRGu@I@-4E zF7=e;KG;vO<)%wC9w*!TspGR!VLeYX+}}mxGY-FZi~8y33XW0Fy|yBUI{i}BQR?h9 zZ|$SDeLsH%b@Be1OzO(i&tIh8@K@{zb<5YC`P7F?cF&?d-`4al_2}`zWyIpV*ot22 z%B4%`{ueuoPSE`?2HrQ&{VzFvH@+aBm%K-oG!n}m(YJ$GmvYf$ryd*IOy@`WvvntZ ze?&eLKaxw@N40(0_!+Uj@Ib$dIA(RrZ90C#b>l5Me&gkWZWC#rs5aNr_d!yJwa-H0 z$!AAQbiPvVm3$yS4B)Z!VRQ literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Summary.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-big-Summary.db new file mode 100644 index 0000000000000000000000000000000000000000..9b24e0450c732103bdd22afb63db34808745ed6f GIT binary patch literal 47 jcmZQzU}#`qU|xS|Eg literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-Data.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-Data.db new file mode 100644 index 0000000000000000000000000000000000000000..68f29ba3d1a411f895cf6cf0a16734d5ad51d3a9 GIT binary patch literal 91 zcmdnQz`!txfzhD;|Ns9D42%rF*cUMJ1I4)0^79pv5{rPiijjfQP>CU1kb&X2eT52x mtdRcM})_ySo{Z z&1U#VtPwel+!TLp%%KyLQXqe{Szu+U)S_A_t&5y3ubd(#aeXiE8=vEp6`91ogfH0;a*8q8>ZGZY8BPGNv)C~7*7cq4X$-&rBSJ>cABdcw_B-q zxD>Oa+GEb!=y4Xi98QK9k4=rnsNoK^21?+2Y2h6h4=w7rplEZ@UX-;?unprJ&N+g!o^upu17{=W zIL>o9&ktIg=YpWMd8BjsOF1v+T*&!3&g(b_)|QqX6l%Yh^9Y)8>%pGj;vUYY(c&D= zThJ2s`O+?o>nhN4COT{dI-Hwt#9fT*htN?z^g~!7w$ou?da^? z=)9BYl6dsm1ho5EbgP2y;`Z;57301nFiZLaZ7)af#{J2B-#}a})Asqjm&MP}lKo4_ z*XeNo>n@##xO}b+9QJ!RIHJrCj+}OaXHCa~4G!FoM(b6G$Mw$!&%K-ooQ(4Qr@rqVe!P?*w(E zwcsZ8tfT?BpQ7!ii!>f16%A6yW~ae^o@2Q4E{)GS^!7FCM;<6* zUbgntPHOA-OIA^r?pdEjU6pqHN$L%MMvqgsebQ~CK2)|dh5Cz*mba)UJ{T?_W{aaM z`>Ct)^XdK1x=T*b`=9x@8|eKnI=z=aB<~l;4zFw`mORY6jaZj@!Bj*&Ik}0hk9@m* z2Yr5oKN>rpOY$Q+-fMoJSYNzv&_x{eQrmSpf5UgiYjpm`ONG5Ak{_?MHqz%o!a>V` znZ%Pm9XHYSO1)t#Y9;Z!5+eEhE1SyiEMeuAakmJTLf`WzqdyUux}Y zC;2UveM4i!oj;78>>@tB|3D8NulH>FaP~}`nO;9Xl}B7ud+Y9&84K=UU;7Q#bJkKt ztrKkjFJ~@oTH2XQbGp_Ewo5s~J+8(=XD+xvp)(g;4k2{rg6k1FbA`@aWJCP7&Rop? z(;MgNg!uiPf}Ef8RYAkif7;6A#?9*g8-c1#&2q(d^{?auf%B+Ctt|J78vIC$3i7|b z`*gIR+6KQ+xV>G?Qy<*J1Pi^@Bar)rFp&La#t&L=8E#Ca>_S0I@yC~ MN*k2A2hJA$2Jj-E?*IS* literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-TOC.txt b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_compact/na-1-bti-TOC.txt new file mode 100644 index 0000000000..c20f4a8ad0 --- /dev/null +++ b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_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 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-CompressionInfo.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-CompressionInfo.db new file mode 100644 index 0000000000000000000000000000000000000000..6726d74e0e20cdbe1af3ff1045b2e1103450d523 GIT binary patch literal 47 mcmZSJ^@%cZ&d)65=Lb}!nk1*kThv{#{d8(*aT1j literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Statistics.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Statistics.db new file mode 100644 index 0000000000000000000000000000000000000000..d65a3a453031759bf3909bb4898996cfe7a7c388 GIT binary patch literal 4632 zcmeI$YfKbJ902fr-10c#${i2kh_qFxlr#%S5wYqOI0c#}AdiA=Okv_@zF;@2|h?gD^RN+Y@w}Kg)~K*Laxb`Ha6v|Q9LW*Iw!Z`|DV+Ox#>+Z znf=XwZg=OgyOU!WM#IdfL{hLMZzh=|c^An%!{|>ksWxScC^bqowX#?v+3k|mqDZ2p z)*v7|Wa9CbFUte9Gxf5|@;^%glnyw~fU3y))k{kQk99Wzhf>FeQ6 ze>p2SXD1>^xRYdG@?94u+P?dNiQE@TY9G`}K|S!7L6n0jhfvm14x_B2tfw4BIhOJg z%F8IHP+sA;+Rrt9tK(EawSR^37RtW4h3Oy!Iqsu8j?Gf@!LFp@4$2p>xy6)sWAoJc z`NKG_DaRHvu!GiO2UGnGd4S{EVeBwB_7i)s4Ig61yozlc!+t6i`3x?!xx0 zDSt0=%hGP-%a_uix#j23`;~iN_XCXc#wN5r_<_x#Fs^9|T?Z|^K92euWUFg}@!)>f z40Nb@{T=8<34`c)3a>O=gYgKya0ogwD+#UV#k%_+ze!k!|^z!Q!YoJrF z)t-XRu6p|@wE3sB3h0t!4Vln2NuR$6z2oojDd_gEd-9==mmXRQeWkPYJ?NRUW9xz0 zXm*b>nkyAOKeMskL&1ZnMMIQ|*z+rE+Ps9G}Zs>2q{_95z`V63bwA9uJzXx&M zra=+J6TY1?!1+qNonP1n;?I@4li+?JGvkjT9f+I8e;a%g_~paBC*b|O=FZN9>)Bdj z?&<*TTdVtroxn$bo;cqHeBt9ydg1-LE~SiREyP*FyCbu?z=d1yKG?lr#_m5>-@#hS zYEw=<@R$GBJ(oHR=ou%KfjyTxG7rnZo(l~J6WDX1@d)g>0(&m7ApTo>E_PG5>0&w) z{i%@=He|1k_j(?dIk6Ef!zBOvA2QWqgQVDNrFyZvY{ROuosBX%6Td^MPk&tdJll4wLss%^_1hb) Hz90Srx8aCe literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Summary.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-big-Summary.db new file mode 100644 index 0000000000000000000000000000000000000000..9b24e0450c732103bdd22afb63db34808745ed6f GIT binary patch literal 47 jcmZQzU}#`qU|j@j{@hUqpn$T0l{Eun1%r&S t4TJvGpIaC>jLmZo*fKC|VURHas=6y_QNh4|z^?ZP0|YQKK9N*^2mmg+DCGbE literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Digest.crc32 b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Digest.crc32 new file mode 100644 index 0000000000..a804901b41 --- /dev/null +++ b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Digest.crc32 @@ -0,0 +1 @@ +163579974 \ No newline at end of file diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Filter.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Filter.db new file mode 100644 index 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Partitions.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Partitions.db new file mode 100644 index 0000000000000000000000000000000000000000..1eed5ad23221734116a11e360a732b27765853d6 GIT binary patch literal 61 zcmWe&b}%qtVR#_O=pfFxfrIluhxt*CyPcd&|9v_2{|hoO8Za=LFhGDjlxBs}3;>Af B30(jH literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Rows.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Rows.db new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Statistics.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter/na-1-bti-Statistics.db new file mode 100644 index 0000000000000000000000000000000000000000..171655ce4000b521a9caa573bd3e128e31019a5d GIT binary patch literal 4648 zcmeI$drVVT7y$75=;cwN(gG?NQ4xHQr8tp+3DQBUfH47iXg4+ULT>~EExE0VOruf! zV?+^+iYAJ$gcvju#RuSv#0_+FQ`s`MWiY0dEt=WQAfgiLsrHWVJ2Bbci#^H7Iludz z-kx*sIlZTsVHg$jHpP&FC3z*u9LXC=<{3tNm5H~>tMy{JSX3FMzY}q2ok|jr!9VLzun^lqxRh7SIoC*7!oM58c?H&n^V1+$Tx3jf_lLwj`xpP;C zg}&jQ5E8B<*^@lq3lnWme_$g0LP;5ea!^nz-qMekAN3q9!iXGX7JtZD{`Vnls89V7PcKQ|UoN(+_ z5!m)6*wrF-12um;O*rm~LT01>!8Ye(A6Dk)+rzBuM-=Ds@OtLH#^%l6q4p{jp8u+Q zw^3ZUS%d8NcO!B@o*OxEL_!`j5{j&`;Q6RE{fXjXt>cg<^hP32>dr-;b_d_@xFLMM z6Kb!c_VfE5A}>nA{re=+iQ;Si(jjljZbClzA{n{mOMHELTF~`m)gjMdd)AP#19@}w zN#t*C%!cM>TtdIE+z{S+)xh=7NzUHO;PYJH>C{SK-oZNe0IOo|=(3=PhBm_cBRsF&2cIAQ zvqJmRK>L8Yvz6z8)!D~7WZOoHVrQK|JbK zzYgB7n5P+8)gb;sfh!j72NDw=cW6M|(EUf-df>%}noh(1EO*UIg!9>&Yig(k?W+n~ zI{Sd@f9<)_0DSHEi6+=z=Z(0oq|rF5+je_69XM;vvsYV3&Dgzls^z z?zxo9fYvxU=-YECSLRLW+jF7I!T9!E=z93}T)sUQm=OQ3Jr`?!@WstiCj59kBN&sv zpXz9TQ>N}5+DzVWc(O7yLvQA+l;{rJc3`L85(ZW` zODoTo08NH021Z5(Mnh|cd@Tls(&^{1gWOULv=M4ah^d>U^ literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Digest.crc32 b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Digest.crc32 new file mode 100644 index 0000000000..06f147ffdb --- /dev/null +++ b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Digest.crc32 @@ -0,0 +1 @@ +2161889354 \ No newline at end of file diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Filter.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Filter.db new file mode 100644 index 0000000000000000000000000000000000000000..2e1d5d29ca0683d58365c1bda385a89ced35f1f9 GIT binary patch literal 24 fcmZQzU|?lnU|?ckVPs%abZX%^z`&xww2T1&5k3Nr literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Index.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-big-Index.db new file mode 100644 index 0000000000000000000000000000000000000000..d094f73e2135ffcf478c5bda9adef5a7c030292b GIT binary patch literal 27 ecmZQzG+;C!xEQ-thmQxNKjS^&}_f{?7mO z-g_Rm_p}s6DX5_oEfuts*Gid@@-`{66s0*s#o5ITdcK&?%NO){yu-oUtRk`BVm@U7Ab#(F%SK~*HpRlnIuSM`m5+uX>Uzc#@2 z40MM|;TkD>llQtXk@nsXOwxU!B=+F z^^w?)mDm+Lc0I9vJ4`t4jzXrRUSsEEV%N#*bEukj|BT{HhP-Zvs+l|3Y|f9Uy+VQ4 zzvAIt6z9IHL=Je>h#ZvRK@J`ikVg!LA*-!;J!(w9qj-4hDC9AZb;#qo(vc_M$MYTA zkLNqS>IQ1Ru;(fA@+J8GR_k0SzVU??`J1#R2fmtCm80rr9t7!Pc5^+5-l zmcE4^5!HsCCsmI20gQ*T=62|?#2B=mN2@;^gz>Sb_CAN6I4AWy^weLn7eL27$Uh66 zwEpYE(5ByJW<#eRDN2COi@CHIdh?&EUg*l(jVaKlG7e3GzE@Me2fFWK=TcyLnku&y zI?rf?&p+L0xeT9w+Otm$pMOShJ-z}y&-9#LR0hmCX;(F{BKp484Bg+q4bBhuzG^>w ze*{hs>si}JBCd;e8=*4u#&Lcl#vg7 z<^OfhB@Y97#-&RCo=YB?Po;m)g@%Lj@43);`1f4?Jr`II|E)b2y}H40V-^*0Qb%#i zlIEMsEuYGw6(!rH|2Mo@?wX6W B2~z+7 literal 0 HcmV?d00001 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Rows.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Rows.db new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Statistics.db b/test/data/legacy-sstables/na/legacy_tables/legacy_na_simple_counter_compact/na-1-bti-Statistics.db new file mode 100644 index 0000000000000000000000000000000000000000..08d8f3ee7df05aba897349c7bc659389d3dd4fb0 GIT binary patch literal 4689 zcmeI$drTBZ7y$5{-CG_fT)6{OFwz#GDrpW|q+p_6;f?~03CKgQR#O*l<3Zq#?41_T z#zygvl7>>FqKV?82{C9SidMj9Vhh?@AG9fLBTCaN8k>67D8)j!&dF{0zKKcuZ{tle znfdKEw>vXCdplW<<22kvN}>g!c@@n(%^PVJI8J|-OLZ!1j8ctMZkLValFKDIY>H&G z+1TE0h#>g}cJ(kQGyX-Oss4V>Zwe%<%bq|R2YG{uyBVLu=BF{=(9T8}?&QU4b3nhy7A2_AC3ajaKZ8z1Z1j zunS|cSI1$ymSQ(Z*saX^?X}>zHvyR>{DEyP!QQK`&xymt`#p;D#p=49ILv>AEm*Ij z_8JXd|C$?DP+Yv!h#c~u4LPjXha5gGBTpHRM%LNzdemF)qIgW#ROIQm;*n?e7a`BO zhVOUE2)^HGP3KYjMT5U0znz8q_fEVA#Vda|Ab(iUj=cLxCUWN&czy;t(R>nZ)MMD5 zm~uZx-jsL<`Rj}Gp!wOS(ElsHQ}-Q=3-PsReF$Bv!eLxf8@?D?T-lGt8{({}h4Ii% z&oFejCFc?Jl!R{dJVja!*I_(L$nSxU&PYbi zlR1%PUC`xbGkpF@Tj44A{1e}H9enmeO_&q;(WN{s^;3l4Jz?!6MhJ5Iek&W>F zh<`TifbWmcxzR&epnX{LvAPq$+JXZ;3UI`GjrZaBbwBFw!SU;FR1`vO>)SC?V1L 0; @@ -89,7 +113,7 @@ public class CompressedInputStreamTest Descriptor desc = new Descriptor(parentDir, "ks", "cf", 1); File tmp = new File(desc.filenameFor(Component.DATA)); MetadataCollector collector = new MetadataCollector(new ClusteringComparator(BytesType.instance)); - CompressionParams param = CompressionParams.snappy(32); + CompressionParams param = CompressionParams.snappy(32, minCompressRatio); Map index = new HashMap(); try (CompressedSequentialWriter writer = new CompressedSequentialWriter(tmp, desc.filenameFor(Component.COMPRESSION_INFO),