This is an automated email from the ASF dual-hosted git repository. blambov pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
from f0abf77e64 Merge branch 'cassandra-4.1' into trunk new f16fb6765b Implementation of the trie-indexed SSTable format (BTI) as described in CEP-25. new fad1f74570 Rename the byte-comparable translation version to OSS50 The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: CHANGES.txt | 1 + NEWS.txt | 6 +- conf/cassandra.yaml | 49 +- src/java/org/apache/cassandra/config/Config.java | 2 +- .../cassandra/config/DatabaseDescriptor.java | 13 +- .../apache/cassandra/db/ClusteringComparator.java | 6 +- src/java/org/apache/cassandra/db/DecoratedKey.java | 2 +- src/java/org/apache/cassandra/db/DeletionTime.java | 10 + .../org/apache/cassandra/db/lifecycle/LogFile.java | 6 +- .../db/marshal/PartitionerDefinedOrder.java | 2 +- .../org/apache/cassandra/db/marshal/TupleType.java | 4 +- .../apache/cassandra/db/memtable/TrieMemtable.java | 2 +- .../LazilyInitializedUnfilteredRowIterator.java | 25 +- src/java/org/apache/cassandra/db/tries/Trie.java | 2 +- .../io/sstable/AbstractRowIndexEntry.java | 4 +- .../cassandra/io/sstable/SSTableReadsListener.java | 2 +- .../org/apache/cassandra/io/sstable/SSTable_API.md | 2 +- .../io/sstable/format/AbstractSSTableFormat.java | 6 + .../cassandra/io/sstable/format/SSTableFormat.java | 4 - .../cassandra/io/sstable/format/SSTableReader.java | 18 +- .../io/sstable/format/SSTableReaderWithFilter.java | 2 +- .../io/sstable/format/SSTableScanner.java | 299 ++++++ .../format/SortedTableReaderLoadingBuilder.java | 69 ++ .../io/sstable/format/SortedTableVerifier.java | 172 +++- .../cassandra/io/sstable/format/big/BigFormat.java | 31 +- .../format/big/BigFormatPartitionWriter.java | 6 +- .../format/big/BigSSTableReaderLoadingBuilder.java | 34 +- .../io/sstable/format/big/BigTableKeyReader.java | 4 +- .../io/sstable/format/big/BigTableReader.java | 12 +- .../io/sstable/format/big/BigTableScanner.java | 307 ++---- .../io/sstable/format/big/BigTableVerifier.java | 244 +---- .../io/sstable/format/big/IndexState.java | 14 +- .../io/sstable/format/big/RowIndexEntry.java | 10 +- .../cassandra/io/sstable/format/bti/BtiFormat.java | 453 +++++++++ .../cassandra/io/sstable/format/bti/BtiFormat.md | 1010 ++++++++++++++++++++ .../format/bti/BtiFormatPartitionWriter.java | 125 +++ .../io/sstable/format/bti/BtiTableReader.java | 534 +++++++++++ .../format/bti/BtiTableReaderLoadingBuilder.java | 208 ++++ .../io/sstable/format/bti/BtiTableScanner.java | 140 +++ .../io/sstable/format/bti/BtiTableScrubber.java | 315 ++++++ .../io/sstable/format/bti/BtiTableVerifier.java | 39 + .../io/sstable/format/bti/BtiTableWriter.java | 428 +++++++++ .../io/sstable/format/bti/PartitionIndex.java | 454 +++++++++ .../sstable/format/bti/PartitionIndexBuilder.java | 234 +++++ .../io/sstable/format/bti/PartitionIndexEarly.java | 50 + .../io/sstable/format/bti/PartitionIterator.java | 254 +++++ .../io/sstable/format/bti/RowIndexReader.java | 193 ++++ .../format/bti/RowIndexReverseIterator.java | 66 ++ .../io/sstable/format/bti/RowIndexWriter.java | 123 +++ .../io/sstable/format/bti/SSTableIterator.java | 112 +++ .../format/bti/SSTableReversedIterator.java | 295 ++++++ .../io/sstable/format/bti/ScrubIterator.java | 92 ++ .../sstable/format/bti/ScrubPartitionIterator.java | 54 ++ .../io/sstable/format/bti/TrieIndexEntry.java | 119 +++ .../io/sstable/metadata/StatsMetadata.java | 52 +- .../tries/IncrementalDeepTrieWriterPageAware.java | 411 ++++++++ .../cassandra/io/tries/IncrementalTrieWriter.java | 82 ++ .../io/tries/IncrementalTrieWriterBase.java | 266 ++++++ .../io/tries/IncrementalTrieWriterPageAware.java | 467 +++++++++ .../io/tries/IncrementalTrieWriterSimple.java | 130 +++ .../cassandra/io/tries/ReverseValueIterator.java | 221 +++++ .../cassandra/io/tries/SerializationNode.java | 55 ++ .../org/apache/cassandra/io/tries/TrieNode.java | 987 +++++++++++++++++++ .../apache/cassandra/io/tries/TrieSerializer.java | 28 + .../apache/cassandra/io/tries/ValueIterator.java | 230 +++++ src/java/org/apache/cassandra/io/tries/Walker.java | 392 ++++++++ .../io/util/BufferedDataOutputStreamPlus.java | 4 +- .../apache/cassandra/io/util/DataOutputPlus.java | 40 +- .../org/apache/cassandra/io/util/PageAware.java | 109 +++ .../apache/cassandra/io/util/SequentialWriter.java | 36 +- .../cassandra/io/util/SimpleChunkReader.java | 7 +- .../org/apache/cassandra/io/util/SizedInts.java | 106 ++ .../io/util/TailOverridingRebufferer.java | 73 ++ .../apache/cassandra/service/StorageService.java | 4 +- .../cassandra/service/StorageServiceMBean.java | 10 +- .../org/apache/cassandra/tools/SSTableExport.java | 2 +- .../cassandra/tools/SSTableMetadataViewer.java | 2 +- .../org/apache/cassandra/utils/ByteBufferUtil.java | 29 +- src/java/org/apache/cassandra/utils/IFilter.java | 7 + .../utils/bytecomparable/ByteComparable.java | 2 +- .../utils/bytecomparable/ByteComparable.md | 370 +++---- .../utils/concurrent/LightweightRecycler.java | 95 ++ .../cassandra/utils/concurrent/ThreadLocals.java | 62 ++ .../apache/cassandra/utils/vint/VIntCoding.java | 2 +- ...ssandra.io.sstable.format.SSTableFormat$Factory | 3 +- test/conf/trie_memtable.yaml | 5 + .../legacy_da_clust/da-1-bti-CompressionInfo.db | Bin 0 -> 207 bytes .../legacy_tables/legacy_da_clust/da-1-bti-Data.db | Bin 0 -> 8746 bytes .../legacy_da_clust/da-1-bti-Digest.crc32 | 1 + .../legacy_da_clust/da-1-bti-Filter.db} | Bin .../legacy_da_clust/da-1-bti-Partitions.db | Bin 0 -> 62 bytes .../legacy_tables/legacy_da_clust/da-1-bti-Rows.db | Bin 0 -> 563 bytes .../legacy_da_clust/da-1-bti-Statistics.db | Bin 0 -> 7304 bytes .../legacy_tables/legacy_da_clust/da-1-bti-TOC.txt | 8 + .../da-1-bti-CompressionInfo.db | Bin 0 -> 199 bytes .../legacy_da_clust_counter/da-1-bti-Data.db | Bin 0 -> 7798 bytes .../legacy_da_clust_counter/da-1-bti-Digest.crc32 | 1 + .../legacy_da_clust_counter/da-1-bti-Filter.db} | Bin .../legacy_da_clust_counter/da-1-bti-Partitions.db | Bin 0 -> 62 bytes .../legacy_da_clust_counter/da-1-bti-Rows.db | Bin 0 -> 563 bytes .../legacy_da_clust_counter/da-1-bti-Statistics.db | Bin 0 -> 7313 bytes .../legacy_da_clust_counter/da-1-bti-TOC.txt | 8 + .../legacy_da_simple/da-1-bti-CompressionInfo.db} | Bin .../legacy_da_simple/da-1-bti-Data.db | Bin 0 -> 89 bytes .../legacy_da_simple/da-1-bti-Digest.crc32 | 1 + .../legacy_da_simple/da-1-bti-Filter.db} | Bin .../legacy_da_simple/da-1-bti-Partitions.db | Bin 0 -> 59 bytes .../legacy_da_simple/da-1-bti-Rows.db | 0 .../legacy_da_simple/da-1-bti-Statistics.db | Bin 0 -> 4814 bytes .../legacy_da_simple/da-1-bti-TOC.txt | 8 + .../da-1-bti-CompressionInfo.db} | Bin .../legacy_da_simple_counter/da-1-bti-Data.db | Bin 0 -> 141 bytes .../legacy_da_simple_counter/da-1-bti-Digest.crc32 | 1 + .../legacy_da_simple_counter/da-1-bti-Filter.db} | Bin .../da-1-bti-Partitions.db | Bin 0 -> 60 bytes .../legacy_da_simple_counter/da-1-bti-Rows.db | 0 .../da-1-bti-Statistics.db | Bin 0 -> 4823 bytes .../legacy_da_simple_counter/da-1-bti-TOC.txt | 8 + .../test/thresholds/RowIndexSizeWarningTest.java | 4 +- .../io/sstable/format/ForwardingSSTableReader.java | 8 +- .../AbstractTypeByteSourceDecodingBench.java | 4 +- .../test/microbench/tries/ComparisonReadBench.java | 14 +- .../config/DatabaseDescriptorRefTest.java | 1 + .../cassandra/config/DatabaseDescriptorTest.java | 13 +- test/unit/org/apache/cassandra/cql3/CQLTester.java | 13 - .../cassandra/cql3/DecoratedKeyPrefixesTest.java | 265 +++++ .../cql3/QueryWithIndexedSSTableTest.java | 36 +- .../cql3/TombstonesWithIndexedSSTableTest.java | 82 +- .../miscellaneous/SSTablesIteratedTest.java | 6 +- .../cassandra/db/CorruptPrimaryIndexTest.java | 70 +- .../unit/org/apache/cassandra/db/KeyspaceTest.java | 2 +- .../columniterator/SSTableReverseIteratorTest.java | 2 +- .../db/compaction/CompactionsCQLTest.java | 12 +- .../cassandra/db/compaction/CompactionsTest.java | 15 +- .../cassandra/db/lifecycle/LogTransactionTest.java | 52 +- .../apache/cassandra/db/lifecycle/TrackerTest.java | 3 +- .../db/streaming/ComponentManifestTest.java | 2 +- .../apache/cassandra/db/tries/SlicedTrieTest.java | 12 +- .../apache/cassandra/db/tries/TrieToMermaid.java | 122 +++ .../cassandra/db/tries/TrieToMermaidTest.java | 41 + .../cassandra/io/sstable/DescriptorTest.java | 10 +- .../cassandra/io/sstable/LegacySSTableTest.java | 8 +- .../cassandra/io/sstable/SSTableHeaderFixTest.java | 2 +- .../cassandra/io/sstable/SSTableReaderTest.java | 328 ++++++- .../cassandra/io/sstable/SSTableScannerTest.java | 137 ++- .../org/apache/cassandra/io/sstable/ScrubTest.java | 32 +- .../apache/cassandra/io/sstable/VerifyTest.java | 13 +- .../AbstractTestVersionSupportedFeatures.java | 91 ++ .../io/sstable/format/big/RowIndexEntryTest.java | 10 +- .../format/big/VersionSupportedFeaturesTest.java | 69 ++ .../io/sstable/format/bti/PartitionIndexTest.java | 888 +++++++++++++++++ .../io/sstable/format/bti/RowIndexTest.java | 517 ++++++++++ .../format/bti/VersionSupportedFeaturesTest.java | 70 ++ .../io/sstable/keycache/KeyCacheTest.java | 4 +- .../sstable/metadata/MetadataSerializerTest.java | 73 +- .../cassandra/io/tries/AbstractTrieTestBase.java | 220 +++++ .../apache/cassandra/io/tries/TrieBuilderTest.java | 105 ++ .../apache/cassandra/io/tries/TrieNodeTest.java | 345 +++++++ .../org/apache/cassandra/io/tries/WalkerTest.java | 311 ++++++ .../io/util/BufferedDataOutputStreamTest.java | 2 +- .../apache/cassandra/io/util/DataOutputTest.java | 2 +- .../apache/cassandra/io/util/PageAwareTest.java | 181 ++++ .../apache/cassandra/io/util/SizedIntsTest.java | 128 +++ .../io/util/TailOverridingRebuffererTest.java | 130 +++ .../org/apache/cassandra/schema/MockSchema.java | 90 +- .../cassandra/streaming/StreamingTransferTest.java | 5 +- .../cassandra/tools/JMXCompatabilityTest.java | 148 +-- .../tools/SSTableExportSchemaLoadingTest.java | 2 +- .../apache/cassandra/utils/ByteBufferUtilTest.java | 33 + .../bytecomparable/AbstractTypeByteSourceTest.java | 8 +- .../bytecomparable/ByteSourceComparisonTest.java | 32 +- .../bytecomparable/ByteSourceConversionTest.java | 2 +- .../bytecomparable/ByteSourceInverseTest.java | 4 +- .../bytecomparable/ByteSourceSequenceTest.java | 2 +- .../bytecomparable/DecoratedKeyByteSourceTest.java | 2 +- 175 files changed, 14588 insertions(+), 1188 deletions(-) create mode 100644 src/java/org/apache/cassandra/io/sstable/format/SSTableScanner.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/SortedTableReaderLoadingBuilder.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiFormat.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiFormat.md create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiFormatPartitionWriter.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiTableReader.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiTableReaderLoadingBuilder.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiTableScanner.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiTableScrubber.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiTableVerifier.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/BtiTableWriter.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/PartitionIndex.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/PartitionIndexBuilder.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/PartitionIndexEarly.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/PartitionIterator.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/RowIndexReader.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/RowIndexReverseIterator.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/RowIndexWriter.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/SSTableIterator.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/SSTableReversedIterator.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/ScrubIterator.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/ScrubPartitionIterator.java create mode 100644 src/java/org/apache/cassandra/io/sstable/format/bti/TrieIndexEntry.java create mode 100644 src/java/org/apache/cassandra/io/tries/IncrementalDeepTrieWriterPageAware.java create mode 100644 src/java/org/apache/cassandra/io/tries/IncrementalTrieWriter.java create mode 100644 src/java/org/apache/cassandra/io/tries/IncrementalTrieWriterBase.java create mode 100644 src/java/org/apache/cassandra/io/tries/IncrementalTrieWriterPageAware.java create mode 100644 src/java/org/apache/cassandra/io/tries/IncrementalTrieWriterSimple.java create mode 100644 src/java/org/apache/cassandra/io/tries/ReverseValueIterator.java create mode 100644 src/java/org/apache/cassandra/io/tries/SerializationNode.java create mode 100644 src/java/org/apache/cassandra/io/tries/TrieNode.java create mode 100644 src/java/org/apache/cassandra/io/tries/TrieSerializer.java create mode 100644 src/java/org/apache/cassandra/io/tries/ValueIterator.java create mode 100644 src/java/org/apache/cassandra/io/tries/Walker.java create mode 100644 src/java/org/apache/cassandra/io/util/PageAware.java create mode 100644 src/java/org/apache/cassandra/io/util/SizedInts.java create mode 100644 src/java/org/apache/cassandra/io/util/TailOverridingRebufferer.java create mode 100644 src/java/org/apache/cassandra/utils/concurrent/LightweightRecycler.java create mode 100644 src/java/org/apache/cassandra/utils/concurrent/ThreadLocals.java create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust/da-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust/da-1-bti-Data.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust/da-1-bti-Digest.crc32 copy test/data/legacy-sstables/{na/legacy_tables/legacy_na_clust/na-1-big-Filter.db => da/legacy_tables/legacy_da_clust/da-1-bti-Filter.db} (100%) create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust/da-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust/da-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust/da-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust/da-1-bti-TOC.txt create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust_counter/da-1-bti-CompressionInfo.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust_counter/da-1-bti-Data.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust_counter/da-1-bti-Digest.crc32 copy test/data/legacy-sstables/{na/legacy_tables/legacy_na_clust/na-1-big-Filter.db => da/legacy_tables/legacy_da_clust_counter/da-1-bti-Filter.db} (100%) create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust_counter/da-1-bti-Partitions.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust_counter/da-1-bti-Rows.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust_counter/da-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_clust_counter/da-1-bti-TOC.txt copy test/data/legacy-sstables/{nb/legacy_tables/legacy_nb_simple/nb-1-big-CompressionInfo.db => da/legacy_tables/legacy_da_simple/da-1-bti-CompressionInfo.db} (100%) create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple/da-1-bti-Data.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple/da-1-bti-Digest.crc32 copy test/data/legacy-sstables/{na/legacy_tables/legacy_na_clust/na-1-big-Filter.db => da/legacy_tables/legacy_da_simple/da-1-bti-Filter.db} (100%) create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple/da-1-bti-Partitions.db copy doc/modules/cassandra/pages/tooling/cass-stress-deprecated => test/data/legacy-sstables/da/legacy_tables/legacy_da_simple/da-1-bti-Rows.db (100%) create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple/da-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple/da-1-bti-TOC.txt copy test/data/legacy-sstables/{nb/legacy_tables/legacy_nb_simple_counter/nb-1-big-CompressionInfo.db => da/legacy_tables/legacy_da_simple_counter/da-1-bti-CompressionInfo.db} (100%) create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple_counter/da-1-bti-Data.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple_counter/da-1-bti-Digest.crc32 copy test/data/legacy-sstables/{na/legacy_tables/legacy_na_clust/na-1-big-Filter.db => da/legacy_tables/legacy_da_simple_counter/da-1-bti-Filter.db} (100%) create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple_counter/da-1-bti-Partitions.db copy doc/modules/cassandra/pages/tooling/cass-stress-deprecated => test/data/legacy-sstables/da/legacy_tables/legacy_da_simple_counter/da-1-bti-Rows.db (100%) create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple_counter/da-1-bti-Statistics.db create mode 100644 test/data/legacy-sstables/da/legacy_tables/legacy_da_simple_counter/da-1-bti-TOC.txt create mode 100644 test/unit/org/apache/cassandra/cql3/DecoratedKeyPrefixesTest.java create mode 100644 test/unit/org/apache/cassandra/db/tries/TrieToMermaid.java create mode 100644 test/unit/org/apache/cassandra/db/tries/TrieToMermaidTest.java create mode 100644 test/unit/org/apache/cassandra/io/sstable/format/AbstractTestVersionSupportedFeatures.java create mode 100644 test/unit/org/apache/cassandra/io/sstable/format/big/VersionSupportedFeaturesTest.java create mode 100644 test/unit/org/apache/cassandra/io/sstable/format/bti/PartitionIndexTest.java create mode 100644 test/unit/org/apache/cassandra/io/sstable/format/bti/RowIndexTest.java create mode 100644 test/unit/org/apache/cassandra/io/sstable/format/bti/VersionSupportedFeaturesTest.java create mode 100644 test/unit/org/apache/cassandra/io/tries/AbstractTrieTestBase.java create mode 100644 test/unit/org/apache/cassandra/io/tries/TrieBuilderTest.java create mode 100644 test/unit/org/apache/cassandra/io/tries/TrieNodeTest.java create mode 100644 test/unit/org/apache/cassandra/io/tries/WalkerTest.java create mode 100644 test/unit/org/apache/cassandra/io/util/PageAwareTest.java create mode 100644 test/unit/org/apache/cassandra/io/util/SizedIntsTest.java create mode 100644 test/unit/org/apache/cassandra/io/util/TailOverridingRebuffererTest.java --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org