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

Reply via email to