This is an automated email from the ASF dual-hosted git repository. maedhroz pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
from a565711056 Fix data corruption handling issues new 303ca55a5d Add Index Group Interface for Storage Attached Index new cde91e56f0 In-memory index implementation with query path new e5e0f3a844 Literal on-disk index and index write path (#9) new 631ae36ca5 Allow CQL queries on multiple indexes without ALLOW FILTERING new 01aeb616be Unify CQLTester#waitForIndex and SAITester#waitForIndexQueryable new c712312b8f post-rebase fixes for the rebase on trunk at fad1f7457032544ab6a7b40c5d38ecb8b25899bb new 93b89b2e79 send SSTableAddedNotification before MemtableDiscardedNotification to fix index data visilibity issue new 661a1d5bb6 fix Segment#intersects to compare bound instead of token new ebea2ba6ad Upgrade to lucene-core 9.7.0 new 98fefc1557 Stream all compatible components registered by an SSTable new 6f125c8042 Numeric on-disk index write and search new b396faf913 Various changes to SAI index validation new cba3e19ccd Query all ranges at once for SAI distributed queries new eb208d3561 Add basic text analysis to SAI, including "case_sensitive", "normalize", and "ascii" modes new 2531cb0458 Fix concurrency in bbtree reader by cloning state new b57181032d Fix KeyRangeIntersectionIterator count new 394d4b1168 Add support for index implementation selection via USING for CREATE INDEX new 3e38b3d641 Release notes and README updates for CEP-7 (Storage-Attached Indexes) new 83203a14c4 Importer should build SSTable indexes successfully before making new SSTables readable new 94964b54b6 minor fixes after rebase on trunk at c1bf002234bd44bce120658e9b08b3d67901e5bb The 20 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: .build/cassandra-build-deps-template.xml | 4 + .build/cassandra-deps-template.xml | 12 +- .build/parent-pom-template.xml | 27 +- CHANGES.txt | 1 + NEWS.txt | 2 + conf/cassandra.yaml | 15 + doc/cql3/CQL.textile | 12 +- .../examples/BNF/create_index_statement.bnf | 3 +- .../cassandra/examples/CQL/create_index.cql | 3 +- .../pages/developing/cql/cql_singlefile.adoc | 27 +- .../cassandra/pages/developing/cql/indexes.adoc | 29 +- .../config/CassandraRelevantProperties.java | 27 +- src/java/org/apache/cassandra/config/Config.java | 9 +- .../cassandra/config/DatabaseDescriptor.java | 33 + .../config/StorageAttachedIndexOptions.java | 44 + .../cassandra/cql3/functions/types/ParseUtils.java | 4 +- .../restrictions/ClusteringColumnRestrictions.java | 25 +- .../cql3/restrictions/CustomIndexExpression.java | 18 + .../cql3/restrictions/IndexRestrictions.java | 45 + .../cql3/restrictions/MultiColumnRestriction.java | 70 +- .../PartitionKeySingleRestrictionSet.java | 6 +- .../cassandra/cql3/restrictions/Restriction.java | 13 +- .../cql3/restrictions/RestrictionSet.java | 41 +- .../cql3/restrictions/RestrictionSetWrapper.java | 11 +- .../cql3/restrictions/SingleColumnRestriction.java | 45 +- .../cql3/restrictions/StatementRestrictions.java | 25 +- .../cassandra/cql3/restrictions/TokenFilter.java | 11 +- .../cql3/restrictions/TokenRestriction.java | 9 +- .../cassandra/cql3/statements/CQL3CasRequest.java | 2 +- .../cql3/statements/ModificationStatement.java | 2 +- .../cassandra/cql3/statements/SelectStatement.java | 11 +- .../statements/schema/CreateIndexStatement.java | 117 +- .../cassandra/db/CassandraTableWriteHandler.java | 5 +- .../apache/cassandra/db/ClusteringComparator.java | 2 + .../org/apache/cassandra/db/ColumnFamilyStore.java | 21 +- src/java/org/apache/cassandra/db/Keyspace.java | 8 +- .../cassandra/db/PartitionRangeReadCommand.java | 40 +- src/java/org/apache/cassandra/db/ReadCommand.java | 93 +- .../cassandra/db/ReadExecutionController.java | 12 +- src/java/org/apache/cassandra/db/ReadQuery.java | 2 +- .../org/apache/cassandra/db/SSTableImporter.java | 5 + .../cassandra/db/SinglePartitionReadCommand.java | 42 +- .../cassandra/db/SinglePartitionReadQuery.java | 2 +- .../org/apache/cassandra/db/TableWriteHandler.java | 3 +- .../db/compaction/AbstractCompactionStrategy.java | 13 +- .../db/compaction/AbstractStrategyHolder.java | 2 +- .../db/compaction/CompactionIterator.java | 5 +- .../cassandra/db/compaction/CompactionManager.java | 8 +- .../db/compaction/CompactionStrategyHolder.java | 4 +- .../db/compaction/CompactionStrategyManager.java | 4 +- .../db/compaction/PendingRepairHolder.java | 4 +- .../db/compaction/UnifiedCompactionStrategy.java | 4 +- .../apache/cassandra/db/compaction/Upgrader.java | 10 +- .../db/compaction/unified/ShardedMultiWriter.java | 12 +- .../compaction/writers/CompactionAwareWriter.java | 8 +- .../writers/DefaultCompactionWriter.java | 8 +- .../writers/MajorLeveledCompactionWriter.java | 2 +- .../org/apache/cassandra/db/filter/RowFilter.java | 17 +- .../org/apache/cassandra/db/lifecycle/Tracker.java | 11 +- .../cassandra/db/memtable/AbstractMemtable.java | 23 + .../org/apache/cassandra/db/memtable/Flushing.java | 7 + .../org/apache/cassandra/db/memtable/Memtable.java | 5 + .../CassandraEntireSSTableStreamReader.java | 2 +- .../db/streaming/CassandraIncomingFile.java | 8 + .../db/streaming/CassandraOutgoingFile.java | 4 +- .../db/streaming/CassandraStreamReceiver.java | 16 +- .../cassandra/db/streaming/ComponentContext.java | 6 +- .../cassandra/db/streaming/ComponentManifest.java | 12 +- .../org/apache/cassandra/db/view/TableViews.java | 2 +- .../cassandra/db/virtual/SystemViewsKeyspace.java | 3 + .../apache/cassandra/dht/Murmur3Partitioner.java | 6 + src/java/org/apache/cassandra/dht/Token.java | 15 + .../cassandra/exceptions/RequestFailureReason.java | 3 +- .../org/apache/cassandra/gms/ApplicationState.java | 1 + .../org/apache/cassandra/gms/VersionedValue.java | 5 + src/java/org/apache/cassandra/index/Index.java | 445 ++++++- .../org/apache/cassandra/index/IndexRegistry.java | 103 +- .../apache/cassandra/index/IndexStatusManager.java | 238 ++++ .../cassandra/index/SecondaryIndexManager.java | 442 +++++-- .../cassandra/index/SingletonIndexGroup.java | 114 ++ .../cassandra/index/SingletonIndexQueryPlan.java | 87 ++ .../cassandra/index/internal/CassandraIndex.java | 23 +- .../index/internal/CassandraIndexSearcher.java | 6 + .../internal/composites/CompositesSearcher.java | 2 +- .../apache/cassandra/index/sai/IndexContext.java | 483 +++++++ .../sai/IndexValidation.java} | 23 +- .../apache/cassandra/index/sai/QueryContext.java | 81 ++ src/java/org/apache/cassandra/index/sai/README.md | 116 ++ .../apache/cassandra/index/sai/SSTableContext.java | 190 +++ .../cassandra/index/sai/SSTableContextManager.java | 147 +++ .../cassandra/index/sai/StorageAttachedIndex.java | 665 ++++++++++ .../index/sai/StorageAttachedIndexBuilder.java | 354 ++++++ .../index/sai/StorageAttachedIndexGroup.java | 463 +++++++ .../index/sai/analyzer/AbstractAnalyzer.java | 111 ++ .../cassandra/index/sai/analyzer/NoOpAnalyzer.java | 66 + .../index/sai/analyzer/NonTokenizingAnalyzer.java | 147 +++ .../index/sai/analyzer/NonTokenizingOptions.java | 156 +++ .../index/sai/analyzer/filter/BasicFilters.java | 82 ++ .../index/sai/analyzer/filter/FilterPipeline.java | 69 + .../analyzer/filter/FilterPipelineExecutor.java} | 25 +- .../index/sai/disk/IndexSearchResultIterator.java | 141 +++ .../index/sai/disk/PerColumnIndexWriter.java | 48 + .../sai/disk/PerSSTableIndexWriter.java} | 21 +- .../cassandra/index/sai/disk/PrimaryKeyMap.java | 76 ++ .../sai/disk/ResettableByteBuffersIndexOutput.java | 153 +++ .../cassandra/index/sai/disk/RowMapping.java | 175 +++ .../cassandra/index/sai/disk/SSTableIndex.java | 260 ++++ .../index/sai/disk/StorageAttachedIndexWriter.java | 250 ++++ .../index/sai/disk/format/IndexComponent.java | 112 ++ .../index/sai/disk/format/IndexDescriptor.java | 459 +++++++ .../index/sai/disk/format/OnDiskFormat.java | 166 +++ .../cassandra/index/sai/disk/format/Version.java | 153 +++ .../index/sai/disk/io/IndexFileUtils.java | 101 ++ .../index/sai/disk/io/IndexInputReader.java | 116 ++ .../index/sai/disk/io/IndexOutputWriter.java | 132 ++ .../sai/disk/io/SeekingRandomAccessInput.java | 70 ++ .../sai/disk/v1/DirectReaders.java} | 19 +- .../cassandra/index/sai/disk/v1/LongArray.java | 90 ++ .../index/sai/disk/v1/MemtableIndexWriter.java | 191 +++ .../index/sai/disk/v1/MetadataSource.java | 97 ++ .../index/sai/disk/v1/MetadataWriter.java | 85 ++ .../index/sai/disk/v1/PerColumnIndexFiles.java | 90 ++ .../index/sai/disk/v1/RowAwarePrimaryKeyMap.java | 201 +++ .../cassandra/index/sai/disk/v1/SAICodecUtils.java | 267 ++++ .../index/sai/disk/v1/SSTableComponentsWriter.java | 90 ++ .../index/sai/disk/v1/SSTableIndexWriter.java | 341 +++++ .../index/sai/disk/v1/V1OnDiskFormat.java | 259 ++++ .../index/sai/disk/v1/V1SSTableIndex.java | 204 +++ .../disk/v1/bbtree/BlockBalancedTreeIterator.java | 104 ++ .../v1/bbtree/BlockBalancedTreePostingsIndex.java | 83 ++ .../v1/bbtree/BlockBalancedTreePostingsWriter.java | 214 ++++ .../disk/v1/bbtree/BlockBalancedTreeQueries.java | 161 +++ .../disk/v1/bbtree/BlockBalancedTreeRamBuffer.java | 104 ++ .../disk/v1/bbtree/BlockBalancedTreeReader.java | 428 +++++++ .../disk/v1/bbtree/BlockBalancedTreeWalker.java | 348 +++++ .../disk/v1/bbtree/BlockBalancedTreeWriter.java | 762 +++++++++++ .../sai/disk/v1/bbtree/LeafOrderMap.java} | 22 +- .../sai/disk/v1/bbtree/NumericIndexWriter.java | 180 +++ .../disk/v1/bitpack/AbstractBlockPackedReader.java | 71 ++ .../disk/v1/bitpack/AbstractBlockPackedWriter.java | 124 ++ .../sai/disk/v1/bitpack/BlockPackedReader.java | 124 ++ .../sai/disk/v1/bitpack/BlockPackedWriter.java | 77 ++ .../v1/bitpack/MonotonicBlockPackedReader.java | 115 ++ .../v1/bitpack/MonotonicBlockPackedWriter.java | 87 ++ .../sai/disk/v1/bitpack/NumericValuesMeta.java} | 27 +- .../sai/disk/v1/bitpack/NumericValuesWriter.java | 100 ++ .../sai/disk/v1/postings/FilteringPostingList.java | 101 ++ .../sai/disk/v1/postings/MergePostingList.java | 130 ++ .../disk/v1/postings/PackedLongsPostingList.java | 62 + .../disk/v1/postings/PostingListRangeIterator.java | 171 +++ .../index/sai/disk/v1/postings/PostingsReader.java | 361 ++++++ .../index/sai/disk/v1/postings/PostingsWriter.java | 324 +++++ .../sai/disk/v1/segment/IndexSegmentSearcher.java | 96 ++ .../v1/segment/IndexSegmentSearcherContext.java | 55 + .../v1/segment/LiteralIndexSegmentSearcher.java | 109 ++ .../v1/segment/LiteralIndexSegmentTermsReader.java | 175 +++ .../v1/segment/NumericIndexSegmentSearcher.java | 115 ++ .../index/sai/disk/v1/segment/Segment.java | 124 ++ .../index/sai/disk/v1/segment/SegmentBuilder.java | 302 +++++ .../index/sai/disk/v1/segment/SegmentMetadata.java | 357 ++++++ .../sai/disk/v1/sortedterms/SortedTermsMeta.java | 48 + .../sai/disk/v1/sortedterms/SortedTermsReader.java | 234 ++++ .../sai/disk/v1/sortedterms/SortedTermsWriter.java | 214 ++++ .../sai/disk/v1/sortedterms/package-info.java | 58 + .../index/sai/disk/v1/trie/LiteralIndexWriter.java | 111 ++ .../index/sai/disk/v1/trie/TriePrefixSearcher.java | 98 ++ .../disk/v1/trie/TrieTermsDictionaryReader.java | 93 ++ .../disk/v1/trie/TrieTermsDictionaryWriter.java | 99 ++ .../sai/iterators/KeyRangeConcatIterator.java | 177 +++ .../iterators/KeyRangeIntersectionIterator.java | 300 +++++ .../index/sai/iterators/KeyRangeIterator.java | 222 ++++ .../index/sai/iterators/KeyRangeUnionIterator.java | 172 +++ .../index/sai/memory/ByteSliceReader.java | 128 ++ .../memory/FilteringInMemoryKeyRangeIterator.java | 47 + .../index/sai/memory/InMemoryKeyRangeIterator.java | 101 ++ .../cassandra/index/sai/memory/MemtableIndex.java | 92 ++ .../index/sai/memory/MemtableIndexManager.java | 157 +++ .../index/sai/memory/MemtableTermsIterator.java | 135 ++ .../index/sai/memory/RAMPostingSlices.java | 137 ++ .../index/sai/memory/RAMStringIndexer.java | 167 +++ .../index/sai/memory/TrieMemoryIndex.java | 382 ++++++ .../index/sai/metrics/AbstractMetrics.java | 91 ++ .../index/sai/metrics/ColumnQueryMetrics.java | 146 +++ .../sai/metrics/IndexGroupMetrics.java} | 18 +- .../cassandra/index/sai/metrics/IndexMetrics.java | 63 + .../sai/metrics/MulticastQueryEventListeners.java | 168 +++ .../index/sai/metrics/QueryEventListener.java | 104 ++ .../index/sai/metrics/TableQueryMetrics.java | 172 +++ .../index/sai/metrics/TableStateMetrics.java | 46 + .../cassandra/index/sai/plan/Expression.java | 388 ++++++ .../cassandra/index/sai/plan/FilterTree.java | 138 ++ .../apache/cassandra/index/sai/plan/Operation.java | 351 ++++++ .../cassandra/index/sai/plan/QueryController.java | 257 ++++ .../cassandra/index/sai/plan/QueryViewBuilder.java | 192 +++ .../sai/plan/StorageAttachedIndexQueryPlan.java | 135 ++ .../sai/plan/StorageAttachedIndexSearcher.java | 565 +++++++++ .../sai/postings/OrdinalPostingList.java} | 14 +- .../index/sai/postings/PeekablePostingList.java | 116 ++ .../cassandra/index/sai/postings/PostingList.java | 60 + .../index/sai/utils/NamedMemoryLimiter.java | 87 ++ .../cassandra/index/sai/utils/PrimaryKey.java | 277 ++++ .../cassandra/index/sai/utils/PrimaryKeys.java | 75 ++ .../sai/utils/TermsIterator.java} | 28 +- .../apache/cassandra/index/sai/utils/TypeUtil.java | 533 ++++++++ .../cassandra/index/sai/view/IndexViewManager.java | 151 +++ .../cassandra/index/sai/view/RangeTermTree.java | 134 ++ .../org/apache/cassandra/index/sai/view/View.java | 100 ++ .../index/sai/virtual/ColumnIndexesSystemView.java | 115 ++ .../sai/virtual/SSTableIndexesSystemView.java | 132 ++ .../index/sai/virtual/SegmentsSystemView.java | 125 ++ .../sai/virtual/StorageAttachedIndexTables.java} | 20 +- .../org/apache/cassandra/index/sasi/SASIIndex.java | 31 +- .../sasi/SASIIndexGroup.java} | 21 +- .../index/sasi/analyzer/filter/StemmerFactory.java | 55 +- .../cassandra/index/sasi/disk/OnDiskIndex.java | 6 +- .../index/sasi/disk/PerSSTableIndexWriter.java | 10 +- .../cassandra/index/sasi/disk/TokenTree.java | 4 +- .../index/sasi/memory/KeyRangeIterator.java | 5 +- .../index/sasi/plan/SASIIndexQueryPlan.java | 51 + .../{QueryPlan.java => SASIIndexSearcher.java} | 17 +- .../cassandra/index/sasi/utils/RangeIterator.java | 4 +- .../io/compress/CompressedSequentialWriter.java | 35 + .../org/apache/cassandra/io/sstable/Component.java | 26 +- .../apache/cassandra/io/sstable/Descriptor.java | 10 +- .../org/apache/cassandra/io/sstable/SSTable.java | 55 +- .../cassandra/io/sstable/SSTableFlushObserver.java | 21 +- .../cassandra/io/sstable/SSTableTxnWriter.java | 10 +- .../io/sstable/SSTableZeroCopyWriter.java | 26 +- .../org/apache/cassandra/io/sstable/SSTable_API.md | 14 +- .../io/sstable/SimpleSSTableMultiWriter.java | 8 +- .../cassandra/io/sstable/format/SSTableFormat.java | 19 +- .../cassandra/io/sstable/format/SSTableWriter.java | 60 +- .../io/sstable/format/SortedTableWriter.java | 6 +- .../cassandra/io/sstable/format/TOCComponent.java | 11 + .../cassandra/io/sstable/format/big/BigFormat.java | 22 +- .../io/sstable/format/big/BigTableWriter.java | 10 +- .../cassandra/io/sstable/format/bti/BtiFormat.java | 19 +- .../io/sstable/format/bti/BtiTableWriter.java | 6 +- .../org/apache/cassandra/io/tries/TrieNode.java | 2 +- .../apache/cassandra/io/tries/ValueIterator.java | 46 +- src/java/org/apache/cassandra/io/tries/Walker.java | 76 +- .../apache/cassandra/io/util/DataOutputPlus.java | 9 +- .../org/apache/cassandra/io/util/PageAware.java | 2 +- .../io/util/TailOverridingRebufferer.java | 2 +- .../org/apache/cassandra/locator/ReplicaPlans.java | 32 +- .../metrics/ClientRangeRequestMetrics.java | 47 + .../org/apache/cassandra/schema/IndexMetadata.java | 34 +- .../apache/cassandra/service/StorageService.java | 20 +- .../paxos/uncommitted/PaxosUncommittedIndex.java | 9 +- .../service/reads/AbstractReadExecutor.java | 10 +- .../cassandra/service/reads/DataResolver.java | 32 +- .../service/reads/ReplicaFilteringProtection.java | 2 +- .../service/reads/ShortReadRowsProtection.java | 2 +- .../service/reads/range/RangeCommandIterator.java | 5 +- .../service/reads/range/RangeCommands.java | 44 +- .../service/reads/range/ReplicaPlanIterator.java | 12 +- .../AbstractGuavaIterator.java} | 28 +- .../org/apache/cassandra/utils/ByteBufferUtil.java | 9 + .../utils/bytecomparable/ByteComparable.java | 5 + .../utils/bytecomparable/ByteSourceInverse.java | 13 + .../utils/concurrent/LightweightRecycler.java | 2 +- .../cassandra/utils/concurrent/ThreadLocals.java | 2 +- .../test/sai/ConcurrencyFactorTest.java | 133 ++ .../test/sai/ImportIndexedSSTablesTest.java | 283 +++++ .../test/sai/IndexAvailabilityTest.java | 288 +++++ .../test/sai/IndexStreamingFailureTest.java | 199 +++ .../distributed/test/sai/IndexStreamingTest.java | 177 +++ .../test/sai/ReplicaFilteringProtectionTest.java | 67 + .../cassandra/distributed/test/sai/SAIUtil.java | 143 +++ .../upgrade/MixedModeIndexTestBase.java | 135 ++ .../distributed/upgrade/MixedModeIndexV40Test.java | 16 +- .../microbench/ZeroCopyStreamingBenchmark.java | 2 +- .../config/DatabaseDescriptorRefTest.java | 8 +- .../config/StorageAttachedIndexOptionsTest.java | 44 + test/unit/org/apache/cassandra/cql3/CQLTester.java | 265 +++- .../org/apache/cassandra/cql3/CQLTesterTest.java | 82 ++ .../org/apache/cassandra/cql3/KeyCacheCqlTest.java | 4 +- .../ClusteringColumnRestrictionsTest.java | 301 ++--- .../entities/SecondaryIndexOnMapEntriesTest.java | 2 +- .../validation/entities/SecondaryIndexTest.java | 84 +- .../operations/InsertUpdateIfConditionTest.java | 2 - .../unit/org/apache/cassandra/db/KeyspaceTest.java | 16 +- .../cassandra/db/ReadCommandVerbHandlerTest.java | 2 +- .../org/apache/cassandra/db/ReadResponseTest.java | 2 +- .../apache/cassandra/db/SecondaryIndexTest.java | 12 +- .../cassandra/db/SerializationHeaderTest.java | 6 +- .../db/SinglePartitionSliceCommandTest.java | 6 +- .../db/compaction/ActiveCompactionsTest.java | 4 +- .../cassandra/db/compaction/CompactionsTest.java | 2 +- .../apache/cassandra/db/filter/RowFilterTest.java | 4 +- .../db/guardrails/GuardrailTablesTest.java | 2 +- .../db/lifecycle/RealTransactionsTest.java | 4 +- .../apache/cassandra/db/lifecycle/TrackerTest.java | 12 +- .../UnfilteredRowIteratorWithLowerBoundTest.java | 4 +- .../CassandraEntireSSTableStreamWriterTest.java | 4 +- .../db/streaming/CassandraStreamHeaderTest.java | 4 +- .../cassandra/db/virtual/GossipInfoTableTest.java | 2 +- .../org/apache/cassandra/dht/KeyCollisionTest.java | 6 + .../apache/cassandra/index/CustomIndexTest.java | 589 ++++++++- .../cassandra/index/SecondaryIndexManagerTest.java | 132 +- .../unit/org/apache/cassandra/index/StubIndex.java | 33 +- .../org/apache/cassandra/index/StubIndexGroup.java | 99 ++ .../index/internal/CassandraIndexTest.java | 9 +- .../index/internal/CustomCassandraIndex.java | 19 +- .../org/apache/cassandra/index/sai/SAITester.java | 971 ++++++++++++++ .../sai/analyzer/NonTokenizingAnalyzerTest.java | 75 ++ .../sai/analyzer/filter/BasicFiltersTest.java | 73 ++ .../index/sai/cql/AbstractQueryTester.java | 78 ++ .../index/sai/cql/AllowFilteringTest.java | 308 +++++ .../cassandra/index/sai/cql/BaseDataModel.java | 565 +++++++++ .../cassandra/index/sai/cql/BooleanTypeTest.java | 35 +- .../index/sai/cql/ClusteringKeyIndexTest.java | 76 ++ .../index/sai/cql/CollectionIndexingTest.java | 230 ++++ .../sai/cql/CompositePartitionKeyIndexTest.java | 104 ++ .../index/sai/cql/DecimalLargeValueTest.java | 151 +++ .../index/sai/cql/DuplicateRowIDTest.java | 62 + .../cassandra/index/sai/cql/IndexQuerySupport.java | 584 +++++++++ .../sai/cql/InetAddressTypeEquivalencyTest.java | 200 +++ .../sai/cql/MixedIndexImplementationsTest.java | 188 +++ .../index/sai/cql/MultipleColumnIndexTest.java | 61 + .../index/sai/cql/QueryCellDeletionsTest.java | 14 +- .../index/sai/cql/QueryRowDeletionsTest.java | 14 +- .../index/sai/cql/QueryTimeToLiveTest.java | 14 +- .../index/sai/cql/QueryWriteLifecycleTest.java | 14 +- .../index/sai/cql/SingleNodeExecutor.java | 94 ++ .../index/sai/cql/StorageAttachedIndexDDLTest.java | 1327 ++++++++++++++++++++ .../sai/cql/TinySegmentQueryCellDeletionsTest.java | 24 +- .../sai/cql/TinySegmentQueryRowDeletionsTest.java | 24 +- .../sai/cql/TinySegmentQueryTimeToLiveTest.java | 24 +- .../cql/TinySegmentQueryWriteLifecycleTest.java | 24 +- .../index/sai/cql/TokenRangeReadTest.java | 44 + .../cassandra/index/sai/cql/types/AsciiTest.java | 14 +- .../cassandra/index/sai/cql/types/BigintTest.java | 14 +- .../cassandra/index/sai/cql/types/BooleanTest.java | 15 +- .../cassandra/index/sai/cql/types/DataSet.java | 697 ++++++++++ .../cassandra/index/sai/cql/types/DateTest.java | 14 +- .../cassandra/index/sai/cql/types/DecimalTest.java | 14 +- .../cassandra/index/sai/cql/types/DoubleTest.java | 14 +- .../cassandra/index/sai/cql/types/FloatTest.java | 14 +- .../index/sai/cql/types/IndexingTypeSupport.java | 153 +++ .../cassandra/index/sai/cql/types/InetTest.java | 14 +- .../cassandra/index/sai/cql/types/IntTest.java | 14 +- .../sai/cql/types/NumericTypeSortingTest.java | 96 ++ .../cassandra/index/sai/cql/types/QuerySet.java | 506 ++++++++ .../index/sai/cql/types/SmallintTest.java | 14 +- .../cassandra/index/sai/cql/types/TextTest.java | 14 +- .../cassandra/index/sai/cql/types/TimeTest.java | 14 +- .../index/sai/cql/types/TimestampTest.java | 14 +- .../index/sai/cql/types/TimeuuidTest.java | 14 +- .../cassandra/index/sai/cql/types/TinyintTest.java | 14 +- .../cassandra/index/sai/cql/types/UuidTest.java | 14 +- .../cassandra/index/sai/cql/types/VarintTest.java | 14 +- .../cql/types/collections/CollectionDataSet.java | 285 +++++ .../collections/lists/FrozenListAsciiTest.java | 18 +- .../collections/lists/FrozenListDecimalTest.java | 18 +- .../types/collections/lists/FrozenListIntTest.java | 18 +- .../collections/lists/FrozenListVarintTest.java | 18 +- .../cql/types/collections/lists/ListAsciiTest.java | 18 +- .../types/collections/lists/ListBigintTest.java | 18 +- .../cql/types/collections/lists/ListDateTest.java | 18 +- .../types/collections/lists/ListDecimalTest.java | 18 +- .../types/collections/lists/ListDoubleTest.java | 18 +- .../cql/types/collections/lists/ListFloatTest.java | 18 +- .../lists/ListFrozenCollectionTest.java | 20 +- .../cql/types/collections/lists/ListInetTest.java | 18 +- .../cql/types/collections/lists/ListIntTest.java | 18 +- .../types/collections/lists/ListSmallintTest.java | 18 +- .../cql/types/collections/lists/ListTextTest.java | 18 +- .../cql/types/collections/lists/ListTimeTest.java | 18 +- .../types/collections/lists/ListTimestampTest.java | 18 +- .../types/collections/lists/ListTimeuuidTest.java | 18 +- .../types/collections/lists/ListTinyintTest.java | 18 +- .../cql/types/collections/lists/ListUuidTest.java | 18 +- .../types/collections/lists/ListVarintTest.java | 18 +- .../types/collections/maps/FrozenMapAsciiTest.java | 18 +- .../collections/maps/FrozenMapDecimalTest.java | 18 +- .../types/collections/maps/FrozenMapIntTest.java | 18 +- .../collections/maps/FrozenMapVarintTest.java | 18 +- .../cql/types/collections/maps/MapAsciiTest.java | 18 +- .../cql/types/collections/maps/MapBigintTest.java | 18 +- .../cql/types/collections/maps/MapDateTest.java | 18 +- .../cql/types/collections/maps/MapDecimalTest.java | 19 +- .../cql/types/collections/maps/MapDoubleTest.java | 18 +- .../collections/maps/MapEntriesAsciiTest.java | 18 +- .../maps/MapEntriesFrozenCollectionTest.java | 31 +- .../types/collections/maps/MapEntriesIntTest.java | 18 +- .../collections/maps/MapEntriesVarintTest.java | 18 +- .../cql/types/collections/maps/MapFloatTest.java | 18 +- .../collections/maps/MapFrozenCollectionTest.java | 20 +- .../cql/types/collections/maps/MapInetTest.java | 18 +- .../sai/cql/types/collections/maps/MapIntTest.java | 18 +- .../types/collections/maps/MapKeysAsciiTest.java | 18 +- .../maps/MapKeysFrozenCollectionTest.java | 20 +- .../cql/types/collections/maps/MapKeysIntTest.java | 18 +- .../types/collections/maps/MapKeysVarintTest.java | 18 +- .../types/collections/maps/MapSmallintTest.java | 18 +- .../cql/types/collections/maps/MapTextTest.java | 18 +- .../cql/types/collections/maps/MapTimeTest.java | 18 +- .../types/collections/maps/MapTimestampTest.java | 18 +- .../types/collections/maps/MapTimeuuidTest.java | 18 +- .../cql/types/collections/maps/MapTinyintTest.java | 18 +- .../cql/types/collections/maps/MapUuidTest.java | 18 +- .../types/collections/maps/MapValuesAsciiTest.java | 18 +- .../maps/MapValuesFrozenCollectionTest.java | 31 +- .../types/collections/maps/MapValuesIntTest.java | 18 +- .../collections/maps/MapValuesVarintTest.java | 18 +- .../cql/types/collections/maps/MapVarintTest.java | 18 +- .../types/collections/maps/MultiMapAsciiTest.java | 18 +- .../types/collections/maps/MultiMapIntTest.java | 18 +- .../types/collections/maps/MultiMapVarintTest.java | 18 +- .../types/collections/sets/FrozenSetAsciiTest.java | 18 +- .../collections/sets/FrozenSetDecimalTest.java | 20 +- .../types/collections/sets/FrozenSetIntTest.java | 18 +- .../collections/sets/FrozenSetVarintTest.java | 18 +- .../cql/types/collections/sets/SetAsciiTest.java | 18 +- .../cql/types/collections/sets/SetBigintTest.java | 18 +- .../cql/types/collections/sets/SetDateTest.java | 18 +- .../cql/types/collections/sets/SetDecimalTest.java | 18 +- .../cql/types/collections/sets/SetDoubleTest.java | 18 +- .../cql/types/collections/sets/SetFloatTest.java | 18 +- .../collections/sets/SetFrozenCollectionTest.java | 20 +- .../cql/types/collections/sets/SetInetTest.java | 18 +- .../sai/cql/types/collections/sets/SetIntTest.java | 18 +- .../types/collections/sets/SetSmallintTest.java | 18 +- .../cql/types/collections/sets/SetTextTest.java | 18 +- .../cql/types/collections/sets/SetTimeTest.java | 18 +- .../types/collections/sets/SetTimestampTest.java | 18 +- .../types/collections/sets/SetTimeuuidTest.java | 18 +- .../cql/types/collections/sets/SetTinyintTest.java | 18 +- .../cql/types/collections/sets/SetUuidTest.java | 18 +- .../cql/types/collections/sets/SetVarintTest.java | 18 +- .../types/multicell/FrozenTupleCollectionTest.java | 32 +- .../cql/types/multicell/FrozenTupleDataSet.java | 74 ++ .../sai/cql/types/multicell/FrozenTupleTest.java | 18 +- .../cql/types/multicell/FrozenTupleTupleTest.java | 18 +- .../types/multicell/FrozenUDTCollectionTest.java | 21 +- .../sai/cql/types/multicell/FrozenUDTDataSet.java | 83 ++ .../sai/cql/types/multicell/FrozenUDTTest.java | 18 +- .../sai/cql/types/multicell/TupleDataSet.java | 19 +- .../index/sai/cql/types/multicell/TupleTest.java | 18 +- .../cassandra/index/sai/disk/ArrayPostingList.java | 92 ++ .../cassandra/index/sai/disk/NodeStartupTest.java | 408 ++++++ .../index/sai/disk/SelectiveIntersectionTest.java | 149 +++ .../index/sai/disk/SingleNodeQueryFailureTest.java | 110 ++ .../index/sai/disk/format/IndexDescriptorTest.java | 103 ++ .../index/sai/disk/format/VersionTest.java | 50 + .../index/sai/disk/io/TrackingIndexFileUtils.java | 116 ++ .../sai/disk/v1/BalancedTreeIndexSearcherTest.java | 221 ++++ .../index/sai/disk/v1/InvertedIndexBuilder.java | 61 + .../sai/disk/v1/InvertedIndexSearcherTest.java | 218 ++++ .../cassandra/index/sai/disk/v1/MetadataTest.java | 187 +++ .../index/sai/disk/v1/SAICodecUtilsTest.java | 392 ++++++ .../index/sai/disk/v1/SegmentFlushTest.java | 222 ++++ .../cassandra/index/sai/disk/v1/SegmentTest.java | 163 +++ .../cassandra/index/sai/disk/v1/SorterTest.java | 71 ++ .../index/sai/disk/v1/TermsReaderTest.java | 180 +++ .../cassandra/index/sai/disk/v1/TermsScanner.java | 104 ++ .../v1/bbtree/BlockBalancedTreeIndexBuilder.java | 334 +++++ .../BlockBalancedTreePostingsWriterTest.java | 189 +++ .../v1/bbtree/BlockBalancedTreeQueriesTest.java | 220 ++++ .../v1/bbtree/BlockBalancedTreeRamBufferTest.java | 74 ++ .../v1/bbtree/BlockBalancedTreeReaderTest.java | 345 +++++ .../sai/disk/v1/bbtree/BlockBalancedTreeTest.java | 174 +++ .../index/sai/disk/v1/bbtree/LeafOrderMapTest.java | 66 + .../sai/disk/v1/bbtree/NumericIndexWriterTest.java | 204 +++ .../sai/disk/v1/bitpack/NumericValuesTest.java | 125 ++ .../sai/disk/v1/postings/MergePostingListTest.java | 333 +++++ .../index/sai/disk/v1/postings/PostingsTest.java | 394 ++++++ .../disk/v1/postings/ScanningPostingsReader.java | 45 + .../sai/disk/v1/sortedterms/SortedTermsTest.java | 415 ++++++ .../sai/disk/v1/trie/TriePrefixSearcherTest.java | 160 +++ .../sai/disk/v1/trie/TrieTermsDictionaryTest.java | 171 +++ .../index/sai/disk/v1/trie/TrieTermsIterator.java | 82 ++ .../index/sai/disk/v1/trie/TrieValidationTest.java | 93 ++ .../index/sai/functional/CompactionTest.java | 354 ++++++ .../index/sai/functional/DiskSpaceTest.java | 56 + .../index/sai/functional/DropTableTest.java | 107 ++ .../index/sai/functional/FailureTest.java | 129 ++ .../index/sai/functional/FlushingTest.java | 79 ++ .../index/sai/functional/GroupComponentsTest.java | 117 ++ .../index/sai/functional/NodeRestartTest.java | 183 +++ .../index/sai/functional/SnapshotTest.java | 165 +++ .../iterators/AbstractKeyRangeIteratorTester.java | 127 ++ .../sai/iterators/KeyRangeConcatIteratorTest.java | 425 +++++++ .../KeyRangeIntersectionIteratorTest.java | 436 +++++++ .../sai/iterators/KeyRangeUnionIteratorTest.java | 451 +++++++ .../index/sai/iterators/LongIterator.java | 116 ++ .../AbstractInMemoryKeyRangeIteratorTester.java | 173 +++ .../sai/memory/InMemoryKeyRangeIteratorTest.java | 21 +- .../PriorityInMemoryKeyRangeIteratorTest.java | 40 + .../index/sai/memory/RAMPostingSlicesTest.java | 80 ++ .../index/sai/memory/RAMStringIndexerTest.java | 115 ++ .../index/sai/memory/TrieMemoryIndexTest.java | 254 ++++ .../index/sai/metrics/AbstractMetricsTest.java | 20 +- .../metrics/FinalSegmentFlushingFailureTest.java | 14 +- .../index/sai/metrics/IndexGroupMetricsTest.java | 92 ++ .../index/sai/metrics/IndexMetricsTest.java | 75 ++ .../index/sai/metrics/QueryMetricsTest.java | 107 ++ .../sai/metrics/SegmentFlushingFailureTester.java | 228 ++++ .../index/sai/metrics/StateMetricsTest.java | 96 ++ .../metrics/TinySegmentFlushingFailureTest.java | 20 +- .../cassandra/index/sai/plan/ExpressionTest.java | 54 + .../cassandra/index/sai/plan/OperationTest.java | 545 ++++++++ .../sai/postings/PeekablePostingListTest.java | 73 ++ .../index/sai/utils/AbstractPrimaryKeyTester.java | 171 +++ .../index/sai/utils/IndexInputLeakDetector.java | 62 + .../index/sai/utils/NamedMemoryLimiterTest.java | 82 ++ .../cassandra/index/sai/utils/PrimaryKeyTest.java | 381 ++++++ .../index/sai/utils/ResourceLeakDetector.java | 81 ++ .../index/sai/utils/SAIRandomizedTester.java | 188 +++ .../cassandra/index/sai/utils/TypeUtilTest.java | 251 ++++ .../index/sai/virtual/IndexesSystemViewTest.java | 134 ++ .../index/sai/virtual/SSTablesSystemViewTest.java | 199 +++ .../index/sai/virtual/SegmentsSystemViewTest.java | 221 ++++ .../apache/cassandra/index/sasi/SASIIndexTest.java | 8 +- .../index/sasi/disk/PerSSTableIndexWriterTest.java | 5 +- .../org/apache/cassandra/inject/ActionBuilder.java | 294 +++++ .../org/apache/cassandra/inject/CyclicBarrier.java | 71 ++ .../org/apache/cassandra/inject/Expression.java | 105 ++ .../org/apache/cassandra/inject/Injection.java | 87 ++ .../apache/cassandra/inject/InjectionBuilder.java | 27 +- .../org/apache/cassandra/inject/Injections.java | 510 ++++++++ .../cassandra/inject/InvokePointBuilder.java | 133 ++ test/unit/org/apache/cassandra/inject/Rule.java | 59 + .../apache/cassandra/io/sstable/ComponentTest.java | 20 +- .../io/sstable/SSTableFlushObserverTest.java | 5 +- .../cassandra/io/sstable/SSTableReaderTest.java | 2 +- .../io/sstable/SSTableWriterTestBase.java | 4 +- .../io/sstable/SSTableZeroCopyWriterTest.java | 2 +- .../org/apache/cassandra/io/sstable/ScrubTest.java | 2 +- .../cassandra/io/tries/AbstractTrieTestBase.java | 6 + .../org/apache/cassandra/io/tries/WalkerTest.java | 3 +- .../apache/cassandra/io/util/SizedIntsTest.java | 1 - .../io/util/TailOverridingRebuffererTest.java | 4 +- .../locator/AssureSufficientLiveNodesTest.java | 10 +- .../metrics/ClientRequestMetricsTest.java | 23 +- .../apache/cassandra/service/QueryPagerTest.java | 2 +- .../reads/range/RangeCommandIteratorTest.java | 4 +- .../service/reads/range/RangeCommandsTest.java | 6 +- .../reads/range/ReplicaPlanIteratorTest.java | 2 +- .../service/reads/range/ReplicaPlanMergerTest.java | 2 +- .../reads/repair/RepairedDataVerifierTest.java | 2 +- ...ntireSSTableStreamingCorrectFilesCountTest.java | 2 +- 543 files changed, 49278 insertions(+), 1986 deletions(-) create mode 100644 src/java/org/apache/cassandra/config/StorageAttachedIndexOptions.java create mode 100644 src/java/org/apache/cassandra/index/IndexStatusManager.java create mode 100644 src/java/org/apache/cassandra/index/SingletonIndexGroup.java create mode 100644 src/java/org/apache/cassandra/index/SingletonIndexQueryPlan.java create mode 100644 src/java/org/apache/cassandra/index/sai/IndexContext.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/IndexValidation.java} (71%) create mode 100644 src/java/org/apache/cassandra/index/sai/QueryContext.java create mode 100644 src/java/org/apache/cassandra/index/sai/README.md create mode 100644 src/java/org/apache/cassandra/index/sai/SSTableContext.java create mode 100644 src/java/org/apache/cassandra/index/sai/SSTableContextManager.java create mode 100644 src/java/org/apache/cassandra/index/sai/StorageAttachedIndex.java create mode 100644 src/java/org/apache/cassandra/index/sai/StorageAttachedIndexBuilder.java create mode 100644 src/java/org/apache/cassandra/index/sai/StorageAttachedIndexGroup.java create mode 100644 src/java/org/apache/cassandra/index/sai/analyzer/AbstractAnalyzer.java create mode 100644 src/java/org/apache/cassandra/index/sai/analyzer/NoOpAnalyzer.java create mode 100644 src/java/org/apache/cassandra/index/sai/analyzer/NonTokenizingAnalyzer.java create mode 100644 src/java/org/apache/cassandra/index/sai/analyzer/NonTokenizingOptions.java create mode 100644 src/java/org/apache/cassandra/index/sai/analyzer/filter/BasicFilters.java create mode 100644 src/java/org/apache/cassandra/index/sai/analyzer/filter/FilterPipeline.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/analyzer/filter/FilterPipelineExecutor.java} (56%) create mode 100644 src/java/org/apache/cassandra/index/sai/disk/IndexSearchResultIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/PerColumnIndexWriter.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/disk/PerSSTableIndexWriter.java} (64%) create mode 100644 src/java/org/apache/cassandra/index/sai/disk/PrimaryKeyMap.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/ResettableByteBuffersIndexOutput.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/RowMapping.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/SSTableIndex.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/StorageAttachedIndexWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/format/IndexComponent.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/format/IndexDescriptor.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/format/OnDiskFormat.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/format/Version.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/io/IndexFileUtils.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/io/IndexInputReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/io/IndexOutputWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/io/SeekingRandomAccessInput.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/disk/v1/DirectReaders.java} (55%) create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/LongArray.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/MemtableIndexWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/MetadataSource.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/MetadataWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/PerColumnIndexFiles.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/RowAwarePrimaryKeyMap.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/SAICodecUtils.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/SSTableComponentsWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/V1OnDiskFormat.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/V1SSTableIndex.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreePostingsIndex.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreePostingsWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeQueries.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeRamBuffer.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeWalker.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeWriter.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/disk/v1/bbtree/LeafOrderMap.java} (56%) create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/NumericIndexWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bitpack/AbstractBlockPackedReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bitpack/AbstractBlockPackedWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bitpack/BlockPackedReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bitpack/BlockPackedWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bitpack/MonotonicBlockPackedReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bitpack/MonotonicBlockPackedWriter.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/disk/v1/bitpack/NumericValuesMeta.java} (52%) create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/bitpack/NumericValuesWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/postings/FilteringPostingList.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/postings/MergePostingList.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/postings/PackedLongsPostingList.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/postings/PostingListRangeIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/postings/PostingsReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/postings/PostingsWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/segment/IndexSegmentSearcher.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/segment/IndexSegmentSearcherContext.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/segment/LiteralIndexSegmentSearcher.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/segment/LiteralIndexSegmentTermsReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/segment/NumericIndexSegmentSearcher.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/segment/Segment.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/segment/SegmentBuilder.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/segment/SegmentMetadata.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/sortedterms/SortedTermsMeta.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/sortedterms/SortedTermsReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/sortedterms/SortedTermsWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/sortedterms/package-info.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/trie/LiteralIndexWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/trie/TriePrefixSearcher.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/trie/TrieTermsDictionaryReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/disk/v1/trie/TrieTermsDictionaryWriter.java create mode 100644 src/java/org/apache/cassandra/index/sai/iterators/KeyRangeConcatIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/iterators/KeyRangeIntersectionIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/iterators/KeyRangeIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/iterators/KeyRangeUnionIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/ByteSliceReader.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/FilteringInMemoryKeyRangeIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/InMemoryKeyRangeIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/MemtableIndex.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/MemtableIndexManager.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/MemtableTermsIterator.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/RAMPostingSlices.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/RAMStringIndexer.java create mode 100644 src/java/org/apache/cassandra/index/sai/memory/TrieMemoryIndex.java create mode 100644 src/java/org/apache/cassandra/index/sai/metrics/AbstractMetrics.java create mode 100644 src/java/org/apache/cassandra/index/sai/metrics/ColumnQueryMetrics.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/metrics/IndexGroupMetrics.java} (54%) create mode 100644 src/java/org/apache/cassandra/index/sai/metrics/IndexMetrics.java create mode 100644 src/java/org/apache/cassandra/index/sai/metrics/MulticastQueryEventListeners.java create mode 100644 src/java/org/apache/cassandra/index/sai/metrics/QueryEventListener.java create mode 100644 src/java/org/apache/cassandra/index/sai/metrics/TableQueryMetrics.java create mode 100644 src/java/org/apache/cassandra/index/sai/metrics/TableStateMetrics.java create mode 100644 src/java/org/apache/cassandra/index/sai/plan/Expression.java create mode 100644 src/java/org/apache/cassandra/index/sai/plan/FilterTree.java create mode 100644 src/java/org/apache/cassandra/index/sai/plan/Operation.java create mode 100644 src/java/org/apache/cassandra/index/sai/plan/QueryController.java create mode 100644 src/java/org/apache/cassandra/index/sai/plan/QueryViewBuilder.java create mode 100644 src/java/org/apache/cassandra/index/sai/plan/StorageAttachedIndexQueryPlan.java create mode 100644 src/java/org/apache/cassandra/index/sai/plan/StorageAttachedIndexSearcher.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/postings/OrdinalPostingList.java} (73%) create mode 100644 src/java/org/apache/cassandra/index/sai/postings/PeekablePostingList.java create mode 100644 src/java/org/apache/cassandra/index/sai/postings/PostingList.java create mode 100644 src/java/org/apache/cassandra/index/sai/utils/NamedMemoryLimiter.java create mode 100644 src/java/org/apache/cassandra/index/sai/utils/PrimaryKey.java create mode 100644 src/java/org/apache/cassandra/index/sai/utils/PrimaryKeys.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/utils/TermsIterator.java} (51%) create mode 100644 src/java/org/apache/cassandra/index/sai/utils/TypeUtil.java create mode 100644 src/java/org/apache/cassandra/index/sai/view/IndexViewManager.java create mode 100644 src/java/org/apache/cassandra/index/sai/view/RangeTermTree.java create mode 100644 src/java/org/apache/cassandra/index/sai/view/View.java create mode 100644 src/java/org/apache/cassandra/index/sai/virtual/ColumnIndexesSystemView.java create mode 100644 src/java/org/apache/cassandra/index/sai/virtual/SSTableIndexesSystemView.java create mode 100644 src/java/org/apache/cassandra/index/sai/virtual/SegmentsSystemView.java copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sai/virtual/StorageAttachedIndexTables.java} (60%) copy src/java/org/apache/cassandra/{db/TableWriteHandler.java => index/sasi/SASIIndexGroup.java} (59%) create mode 100644 src/java/org/apache/cassandra/index/sasi/plan/SASIIndexQueryPlan.java rename src/java/org/apache/cassandra/index/sasi/plan/{QueryPlan.java => SASIIndexSearcher.java} (92%) create mode 100644 src/java/org/apache/cassandra/metrics/ClientRangeRequestMetrics.java rename src/java/org/apache/cassandra/{index/sasi/utils/AbstractIterator.java => utils/AbstractGuavaIterator.java} (83%) create mode 100644 test/distributed/org/apache/cassandra/distributed/test/sai/ConcurrencyFactorTest.java create mode 100644 test/distributed/org/apache/cassandra/distributed/test/sai/ImportIndexedSSTablesTest.java create mode 100644 test/distributed/org/apache/cassandra/distributed/test/sai/IndexAvailabilityTest.java create mode 100644 test/distributed/org/apache/cassandra/distributed/test/sai/IndexStreamingFailureTest.java create mode 100644 test/distributed/org/apache/cassandra/distributed/test/sai/IndexStreamingTest.java create mode 100644 test/distributed/org/apache/cassandra/distributed/test/sai/ReplicaFilteringProtectionTest.java create mode 100644 test/distributed/org/apache/cassandra/distributed/test/sai/SAIUtil.java create mode 100644 test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeIndexTestBase.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeIndexV40Test.java (73%) create mode 100644 test/unit/org/apache/cassandra/config/StorageAttachedIndexOptionsTest.java create mode 100644 test/unit/org/apache/cassandra/cql3/CQLTesterTest.java create mode 100644 test/unit/org/apache/cassandra/index/StubIndexGroup.java create mode 100644 test/unit/org/apache/cassandra/index/sai/SAITester.java create mode 100644 test/unit/org/apache/cassandra/index/sai/analyzer/NonTokenizingAnalyzerTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/analyzer/filter/BasicFiltersTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/AbstractQueryTester.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/AllowFilteringTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/BaseDataModel.java copy src/java/org/apache/cassandra/db/CassandraTableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/BooleanTypeTest.java (50%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/ClusteringKeyIndexTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/CollectionIndexingTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/CompositePartitionKeyIndexTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/DecimalLargeValueTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/DuplicateRowIDTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/IndexQuerySupport.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/InetAddressTypeEquivalencyTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/MixedIndexImplementationsTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/MultipleColumnIndexTest.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/QueryCellDeletionsTest.java (73%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/QueryRowDeletionsTest.java (73%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/QueryTimeToLiveTest.java (73%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/QueryWriteLifecycleTest.java (73%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/SingleNodeExecutor.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/StorageAttachedIndexDDLTest.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/TinySegmentQueryCellDeletionsTest.java (60%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/TinySegmentQueryRowDeletionsTest.java (60%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/TinySegmentQueryTimeToLiveTest.java (60%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/TinySegmentQueryWriteLifecycleTest.java (60%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/TokenRangeReadTest.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/AsciiTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/BigintTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/BooleanTest.java (67%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/types/DataSet.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/DateTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/DecimalTest.java (67%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/DoubleTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/FloatTest.java (68%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/types/IndexingTypeSupport.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/InetTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/IntTest.java (68%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/types/NumericTypeSortingTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/types/QuerySet.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/SmallintTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/TextTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/TimeTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/TimestampTest.java (67%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/TimeuuidTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/TinyintTest.java (67%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/UuidTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/VarintTest.java (68%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/types/collections/CollectionDataSet.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/FrozenListAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/FrozenListDecimalTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/FrozenListIntTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/FrozenListVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListBigintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListDateTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListDecimalTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListDoubleTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListFloatTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListFrozenCollectionTest.java (51%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListInetTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListIntTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListSmallintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListTextTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListTimeTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListTimestampTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListTimeuuidTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListTinyintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListUuidTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/lists/ListVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/FrozenMapAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/FrozenMapDecimalTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/FrozenMapIntTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/FrozenMapVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapBigintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapDateTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapDecimalTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapDoubleTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapEntriesAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/CassandraTableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapEntriesFrozenCollectionTest.java (50%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapEntriesIntTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapEntriesVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapFloatTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapFrozenCollectionTest.java (51%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapInetTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapIntTest.java (56%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapKeysAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapKeysFrozenCollectionTest.java (50%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapKeysIntTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapKeysVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapSmallintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapTextTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapTimeTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapTimestampTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapTimeuuidTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapTinyintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapUuidTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapValuesAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/CassandraTableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapValuesFrozenCollectionTest.java (50%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapValuesIntTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapValuesVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MapVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MultiMapAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MultiMapIntTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/maps/MultiMapVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/FrozenSetAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/FrozenSetDecimalTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/FrozenSetIntTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/FrozenSetVarintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetAsciiTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetBigintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetDateTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetDecimalTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetDoubleTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetFloatTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetFrozenCollectionTest.java (51%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetInetTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetIntTest.java (56%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetSmallintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetTextTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetTimeTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetTimestampTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetTimeuuidTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetTinyintTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetUuidTest.java (55%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/collections/sets/SetVarintTest.java (55%) copy src/java/org/apache/cassandra/db/CassandraTableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/multicell/FrozenTupleCollectionTest.java (50%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/types/multicell/FrozenTupleDataSet.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/multicell/FrozenTupleTest.java (58%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/multicell/FrozenTupleTupleTest.java (56%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/multicell/FrozenUDTCollectionTest.java (51%) create mode 100644 test/unit/org/apache/cassandra/index/sai/cql/types/multicell/FrozenUDTDataSet.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/multicell/FrozenUDTTest.java (58%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/multicell/TupleDataSet.java (67%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/cql/types/multicell/TupleTest.java (59%) create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/ArrayPostingList.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/NodeStartupTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/SelectiveIntersectionTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/SingleNodeQueryFailureTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/format/IndexDescriptorTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/format/VersionTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/io/TrackingIndexFileUtils.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/BalancedTreeIndexSearcherTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/InvertedIndexBuilder.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/InvertedIndexSearcherTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/MetadataTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/SAICodecUtilsTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/SegmentFlushTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/SegmentTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/SorterTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/TermsReaderTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/TermsScanner.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeIndexBuilder.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreePostingsWriterTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeQueriesTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeRamBufferTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeReaderTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bbtree/LeafOrderMapTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bbtree/NumericIndexWriterTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/bitpack/NumericValuesTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/postings/MergePostingListTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/postings/PostingsTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/postings/ScanningPostingsReader.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/sortedterms/SortedTermsTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/trie/TriePrefixSearcherTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/trie/TrieTermsDictionaryTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/trie/TrieTermsIterator.java create mode 100644 test/unit/org/apache/cassandra/index/sai/disk/v1/trie/TrieValidationTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/functional/CompactionTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/functional/DiskSpaceTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/functional/DropTableTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/functional/FailureTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/functional/FlushingTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/functional/GroupComponentsTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/functional/NodeRestartTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/functional/SnapshotTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/iterators/AbstractKeyRangeIteratorTester.java create mode 100644 test/unit/org/apache/cassandra/index/sai/iterators/KeyRangeConcatIteratorTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/iterators/KeyRangeIntersectionIteratorTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/iterators/KeyRangeUnionIteratorTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/iterators/LongIterator.java create mode 100644 test/unit/org/apache/cassandra/index/sai/memory/AbstractInMemoryKeyRangeIteratorTester.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/memory/InMemoryKeyRangeIteratorTest.java (55%) create mode 100644 test/unit/org/apache/cassandra/index/sai/memory/PriorityInMemoryKeyRangeIteratorTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/memory/RAMPostingSlicesTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/memory/RAMStringIndexerTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/memory/TrieMemoryIndexTest.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/metrics/AbstractMetricsTest.java (68%) copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/metrics/FinalSegmentFlushingFailureTest.java (73%) create mode 100644 test/unit/org/apache/cassandra/index/sai/metrics/IndexGroupMetricsTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/metrics/IndexMetricsTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/metrics/QueryMetricsTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/metrics/SegmentFlushingFailureTester.java create mode 100644 test/unit/org/apache/cassandra/index/sai/metrics/StateMetricsTest.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/index/sai/metrics/TinySegmentFlushingFailureTest.java (69%) create mode 100644 test/unit/org/apache/cassandra/index/sai/plan/ExpressionTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/plan/OperationTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/postings/PeekablePostingListTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/utils/AbstractPrimaryKeyTester.java create mode 100644 test/unit/org/apache/cassandra/index/sai/utils/IndexInputLeakDetector.java create mode 100644 test/unit/org/apache/cassandra/index/sai/utils/NamedMemoryLimiterTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/utils/PrimaryKeyTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/utils/ResourceLeakDetector.java create mode 100644 test/unit/org/apache/cassandra/index/sai/utils/SAIRandomizedTester.java create mode 100644 test/unit/org/apache/cassandra/index/sai/utils/TypeUtilTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/virtual/IndexesSystemViewTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/virtual/SSTablesSystemViewTest.java create mode 100644 test/unit/org/apache/cassandra/index/sai/virtual/SegmentsSystemViewTest.java create mode 100644 test/unit/org/apache/cassandra/inject/ActionBuilder.java create mode 100644 test/unit/org/apache/cassandra/inject/CyclicBarrier.java create mode 100644 test/unit/org/apache/cassandra/inject/Expression.java create mode 100644 test/unit/org/apache/cassandra/inject/Injection.java copy src/java/org/apache/cassandra/db/TableWriteHandler.java => test/unit/org/apache/cassandra/inject/InjectionBuilder.java (58%) create mode 100644 test/unit/org/apache/cassandra/inject/Injections.java create mode 100644 test/unit/org/apache/cassandra/inject/InvokePointBuilder.java create mode 100644 test/unit/org/apache/cassandra/inject/Rule.java --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org