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

Reply via email to