This is an automated email from the ASF dual-hosted git repository. mck pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit a8d0584936e4f443ee3e63b76890a0e5ba60f1d1 Merge: f8c240147c 949b760f55 Author: Mick Semb Wever <m...@apache.org> AuthorDate: Sun Oct 29 12:24:08 2023 +0100 Merge branch 'cassandra-5.0' into trunk * cassandra-5.0: Add support for a vector search index in SAI .build/cassandra-deps-template.xml | 4 + .build/parent-pom-template.xml | 5 + CHANGES.txt | 1 + src/antlr/Lexer.g | 3 +- src/antlr/Parser.g | 15 +- .../config/CassandraRelevantProperties.java | 17 +- src/java/org/apache/cassandra/cql3/Operator.java | 17 + src/java/org/apache/cassandra/cql3/Ordering.java | 180 ++ .../org/apache/cassandra/cql3/QueryOptions.java | 44 + src/java/org/apache/cassandra/cql3/Relation.java | 2 + .../apache/cassandra/cql3/UntypedResultSet.java | 7 + .../cassandra/cql3/functions/VectorFcts.java | 6 +- .../cql3/restrictions/MultiColumnRestriction.java | 18 + .../cassandra/cql3/restrictions/Restriction.java | 15 + .../cql3/restrictions/RestrictionSet.java | 39 +- .../cql3/restrictions/RestrictionSetWrapper.java | 12 + .../cql3/restrictions/SingleColumnRestriction.java | 85 + .../cql3/restrictions/SingleRestriction.java | 5 + .../cql3/restrictions/StatementRestrictions.java | 111 +- .../cassandra/cql3/restrictions/TokenFilter.java | 12 + .../cql3/restrictions/TokenRestriction.java | 12 + .../cassandra/cql3/statements/DeleteStatement.java | 4 +- .../cql3/statements/ModificationStatement.java | 5 +- .../cassandra/cql3/statements/SelectStatement.java | 262 +- .../cassandra/cql3/statements/UpdateStatement.java | 5 +- .../statements/schema/CreateViewStatement.java | 1 + .../org/apache/cassandra/db/ColumnFamilyStore.java | 10 +- .../cassandra/db/PartitionRangeReadCommand.java | 2 +- src/java/org/apache/cassandra/db/ReadCommand.java | 6 + .../cassandra/db/ReadCommandVerbHandler.java | 3 + .../cassandra/db/ReadExecutionController.java | 5 + src/java/org/apache/cassandra/db/ReadQuery.java | 11 + .../org/apache/cassandra/db/filter/RowFilter.java | 5 +- .../cassandra/db/marshal/ByteArrayAccessor.java | 13 + .../cassandra/db/marshal/ByteBufferAccessor.java | 13 + .../apache/cassandra/db/marshal/ValueAccessor.java | 3 + .../apache/cassandra/db/marshal/VectorType.java | 10 +- src/java/org/apache/cassandra/db/view/View.java | 2 +- src/java/org/apache/cassandra/index/Index.java | 28 +- .../apache/cassandra/index/sai/IndexContext.java | 22 + .../apache/cassandra/index/sai/QueryContext.java | 9 + .../cassandra/index/sai/StorageAttachedIndex.java | 101 +- .../cassandra/index/sai/VectorQueryContext.java | 194 ++ .../index/sai/disk/IndexSearchResultIterator.java | 26 +- .../cassandra/index/sai/disk/PrimaryKeyMap.java | 19 + .../cassandra/index/sai/disk/RowMapping.java | 33 + .../cassandra/index/sai/disk/SSTableIndex.java | 3 +- ...ator.java => SSTableRowIdKeyRangeIterator.java} | 79 +- .../index/sai/disk/format/IndexComponent.java | 5 + .../cassandra/index/sai/disk/format/Version.java | 2 +- .../index/sai/disk/io/IndexFileUtils.java | 11 + .../index/sai/disk/v1/IndexWriterConfig.java | 196 ++ .../index/sai/disk/v1/MemtableIndexWriter.java | 74 +- .../index/sai/disk/v1/PerColumnIndexFiles.java | 17 +- .../index/sai/disk/v1/SSTableIndexWriter.java | 21 +- .../index/sai/disk/v1/SkinnyPrimaryKeyMap.java | 24 +- .../index/sai/disk/v1/V1OnDiskFormat.java | 9 +- .../index/sai/disk/v1/V1SSTableIndex.java | 14 +- .../index/sai/disk/v1/WidePrimaryKeyMap.java | 15 +- .../disk/v1/bitpack/AbstractBlockPackedReader.java | 10 +- .../sai/disk/v1/postings/MergePostingList.java | 30 +- .../disk/v1/postings/PostingListRangeIterator.java | 24 +- .../index/sai/disk/v1/postings/PostingsReader.java | 20 +- .../index/sai/disk/v1/postings/PostingsWriter.java | 4 - .../sai/disk/v1/postings/VectorPostingList.java | 75 + .../sai/disk/v1/segment/IndexSegmentSearcher.java | 21 +- .../v1/segment/IndexSegmentSearcherContext.java | 2 - .../v1/segment/LiteralIndexSegmentSearcher.java | 10 +- .../v1/segment/NumericIndexSegmentSearcher.java | 8 +- .../index/sai/disk/v1/segment/Segment.java | 14 +- .../index/sai/disk/v1/segment/SegmentBuilder.java | 31 + .../index/sai/disk/v1/segment/SegmentMetadata.java | 5 + .../index/sai/disk/v1/segment/SegmentOrdering.java | 58 + .../v1/segment/VectorIndexSegmentSearcher.java | 363 +++ .../disk/v1/trie/TrieTermsDictionaryReader.java | 2 +- .../index/sai/disk/v1/vector/BitsUtil.java | 122 + .../sai/disk/v1/vector/CheckpointingIterator.java | 101 + .../sai/disk/v1/vector/CompactionVectorValues.java | 101 + .../sai/disk/v1/vector/ConcurrentVectorValues.java | 75 + .../index/sai/disk/v1/vector/DiskAnn.java | 182 ++ .../index/sai/disk/v1/vector/DiskBinarySearch.java | 55 + .../sai/disk/v1/vector/OnDiskOrdinalsMap.java | 171 ++ .../index/sai/disk/v1/vector/OnHeapGraph.java | 385 +++ .../index/sai/disk/v1/vector/OptimizeFor.java | 52 + .../sai/disk/v1/vector/RamAwareVectorValues.java | 26 + .../index/sai/disk/v1/vector/RamEstimation.java | 53 + .../disk/v1/vector/RandomAccessReaderAdapter.java | 127 + .../index/sai/disk/v1/vector/VectorPostings.java | 150 + .../sai/disk/v1/vector/VectorPostingsWriter.java | 111 + .../index/sai/iterators/KeyRangeIterator.java | 7 + .../index/sai/iterators/KeyRangeListIterator.java | 67 + .../sai/iterators/KeyRangeOrderingIterator.java | 92 + .../cassandra/index/sai/memory/MemoryIndex.java | 70 + .../cassandra/index/sai/memory/MemtableIndex.java | 37 +- .../index/sai/memory/MemtableIndexManager.java | 42 +- .../index/sai/memory/MemtableOrdering.java | 42 + .../index/sai/memory/TrieMemoryIndex.java | 43 +- .../index/sai/memory/VectorMemoryIndex.java | 376 +++ .../cassandra/index/sai/plan/Expression.java | 17 +- .../cassandra/index/sai/plan/FilterTree.java | 2 +- .../apache/cassandra/index/sai/plan/Operation.java | 14 +- .../cassandra/index/sai/plan/QueryController.java | 183 +- .../cassandra/index/sai/plan/QueryViewBuilder.java | 61 +- .../sai/plan/StorageAttachedIndexQueryPlan.java | 23 + .../sai/plan/StorageAttachedIndexSearcher.java | 45 +- .../index/sai/plan/VectorTopKProcessor.java | 193 ++ .../index/sai/postings/IntArrayPostingList.java | 84 + .../index/sai/postings/PeekablePostingList.java | 12 + .../cassandra/index/sai/postings/PostingList.java | 33 + .../index/sai/postings/RangePostingList.java | 88 + .../cassandra/index/sai/utils/AtomicRatio.java | 65 + .../index/sai/utils/InMemoryPartitionIterator.java | 122 + .../utils/InMemoryUnfilteredPartitionIterator.java | 142 + .../cassandra/index/sai/utils/PartitionInfo.java | 86 + .../cassandra/index/sai/utils/RangeUtil.java | 34 + .../apache/cassandra/index/sai/utils/TypeUtil.java | 25 +- .../cassandra/index/sai/view/IndexViewManager.java | 6 +- .../org/apache/cassandra/index/sai/view/View.java | 6 +- .../apache/cassandra/io/util/MmappedRegions.java | 19 + .../cassandra/io/util/RandomAccessReader.java | 4 +- .../org/apache/cassandra/io/util/Rebufferer.java | 12 + .../apache/cassandra/locator/ReplicaLayout.java | 2 +- .../org/apache/cassandra/locator/ReplicaPlan.java | 20 + .../org/apache/cassandra/locator/ReplicaPlans.java | 24 + .../service/pager/AggregationQueryPager.java | 6 + .../service/pager/PartitionRangeQueryPager.java | 6 + .../apache/cassandra/service/pager/QueryPager.java | 9 + .../cassandra/service/reads/DataResolver.java | 39 +- .../service/reads/range/RangeCommandIterator.java | 16 +- .../service/reads/range/RangeCommands.java | 3 + .../reads/range/ScanAllRangesCommandIterator.java | 114 + .../org/apache/cassandra/utils/ByteBufferUtil.java | 5 + test/data/siftsmall/siftsmall_base.fvecs | Bin 0 -> 5160000 bytes test/data/siftsmall/siftsmall_groundtruth.ivecs | Bin 0 -> 40400 bytes test/data/siftsmall/siftsmall_learn.fvecs | Bin 0 -> 12900000 bytes test/data/siftsmall/siftsmall_query.fvecs | Bin 0 -> 51600 bytes .../distributed/fuzz/SSTableGenerator.java | 2 + .../test/sai/VectorDistributedTest.java | 442 +++ .../distributed/test/sai/VectorValidationTest.java | 48 + test/resources/glove.3K.50d.txt | 3000 ++++++++++++++++++++ .../batchlog/BatchlogEndpointFilterTest.java | 8 + test/unit/org/apache/cassandra/cql3/CQLTester.java | 10 + .../cassandra/cql3/functions/VectorFctsTest.java | 10 +- .../cassandra/index/sai/cql/ComplexQueryTest.java | 68 + .../index/sai/cql/VectorInvalidQueryTest.java | 391 +++ .../cassandra/index/sai/cql/VectorLocalTest.java | 603 ++++ .../index/sai/cql/VectorSegmentationTest.java | 133 + .../index/sai/cql/VectorSiftSmallTest.java | 158 ++ .../cassandra/index/sai/cql/VectorTester.java | 119 + .../cassandra/index/sai/cql/VectorTypeTest.java | 660 +++++ .../index/sai/cql/VectorUpdateDeleteTest.java | 561 ++++ .../sai/disk/v1/BalancedTreeIndexSearcherTest.java | 10 +- .../sai/disk/v1/InvertedIndexSearcherTest.java | 25 +- .../v1/bbtree/BlockBalancedTreeIndexBuilder.java | 13 + .../index/sai/iterators/LongIterator.java | 2 +- .../index/sai/memory/TrieMemoryIndexTest.java | 2 +- .../index/sai/memory/VectorMemoryIndexTest.java | 244 ++ .../apache/cassandra/index/sai/utils/Glove.java | 120 + .../org/apache/cassandra/inject/Injection.java | 2 +- .../org/apache/cassandra/tracing/TracingTest.java | 74 +- .../apache/cassandra/tracing/TracingTestImpl.java | 101 + .../cassandra/utils/AbstractTypeGenerators.java | 2 +- 162 files changed, 12902 insertions(+), 462 deletions(-) diff --cc CHANGES.txt index 69d3e456c9,46a8acf7a2..5e3057f3eb --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,8 -1,5 +1,9 @@@ -5.0-alpha2 +5.1 + * Add ELAPSED command to cqlsh (CASSANDRA-18861) + * Add the ability to disable bulk loading of SSTables (CASSANDRA-18781) + * Clean up obsolete functions and simplify cql_version handling in cqlsh (CASSANDRA-18787) +Merged from 5.0: + * Add support for vector search in SAI (CASSANDRA-18715) * Remove crc_check_chance from CompressionParams (CASSANDRA-18872) * Fix schema loading of UDTs inside vectors inside UDTs (CASSANDRA-18964) * Add cqlsh autocompletion for the vector data type (CASSANDRA-18946) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org