This is an automated email from the ASF dual-hosted git repository.
mck pushed a change to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git
from f8c240147c Merge branch 'cassandra-5.0' into trunk
new 949b760f55 Add support for a vector search index in SAI
new a8d0584936 Merge branch 'cassandra-5.0' into trunk
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.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(-)
create mode 100644 src/java/org/apache/cassandra/cql3/Ordering.java
create mode 100644
src/java/org/apache/cassandra/index/sai/VectorQueryContext.java
copy
src/java/org/apache/cassandra/index/sai/disk/{v1/postings/PostingListRangeIterator.java
=> SSTableRowIdKeyRangeIterator.java} (60%)
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/IndexWriterConfig.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/postings/VectorPostingList.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/segment/SegmentOrdering.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/segment/VectorIndexSegmentSearcher.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/BitsUtil.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/CheckpointingIterator.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/CompactionVectorValues.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/ConcurrentVectorValues.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/DiskAnn.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/DiskBinarySearch.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/OnDiskOrdinalsMap.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/OnHeapGraph.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/OptimizeFor.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/RamAwareVectorValues.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/RamEstimation.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/RandomAccessReaderAdapter.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/VectorPostings.java
create mode 100644
src/java/org/apache/cassandra/index/sai/disk/v1/vector/VectorPostingsWriter.java
create mode 100644
src/java/org/apache/cassandra/index/sai/iterators/KeyRangeListIterator.java
create mode 100644
src/java/org/apache/cassandra/index/sai/iterators/KeyRangeOrderingIterator.java
create mode 100644
src/java/org/apache/cassandra/index/sai/memory/MemoryIndex.java
create mode 100644
src/java/org/apache/cassandra/index/sai/memory/MemtableOrdering.java
create mode 100644
src/java/org/apache/cassandra/index/sai/memory/VectorMemoryIndex.java
create mode 100644
src/java/org/apache/cassandra/index/sai/plan/VectorTopKProcessor.java
create mode 100644
src/java/org/apache/cassandra/index/sai/postings/IntArrayPostingList.java
create mode 100644
src/java/org/apache/cassandra/index/sai/postings/RangePostingList.java
create mode 100644
src/java/org/apache/cassandra/index/sai/utils/AtomicRatio.java
create mode 100644
src/java/org/apache/cassandra/index/sai/utils/InMemoryPartitionIterator.java
create mode 100644
src/java/org/apache/cassandra/index/sai/utils/InMemoryUnfilteredPartitionIterator.java
create mode 100644
src/java/org/apache/cassandra/index/sai/utils/PartitionInfo.java
create mode 100644 src/java/org/apache/cassandra/index/sai/utils/RangeUtil.java
create mode 100644
src/java/org/apache/cassandra/service/reads/range/ScanAllRangesCommandIterator.java
create mode 100644 test/data/siftsmall/siftsmall_base.fvecs
create mode 100644 test/data/siftsmall/siftsmall_groundtruth.ivecs
create mode 100644 test/data/siftsmall/siftsmall_learn.fvecs
create mode 100644 test/data/siftsmall/siftsmall_query.fvecs
create mode 100644
test/distributed/org/apache/cassandra/distributed/test/sai/VectorDistributedTest.java
create mode 100644
test/distributed/org/apache/cassandra/distributed/test/sai/VectorValidationTest.java
create mode 100644 test/resources/glove.3K.50d.txt
create mode 100644
test/unit/org/apache/cassandra/index/sai/cql/ComplexQueryTest.java
create mode 100644
test/unit/org/apache/cassandra/index/sai/cql/VectorInvalidQueryTest.java
create mode 100644
test/unit/org/apache/cassandra/index/sai/cql/VectorLocalTest.java
create mode 100644
test/unit/org/apache/cassandra/index/sai/cql/VectorSegmentationTest.java
create mode 100644
test/unit/org/apache/cassandra/index/sai/cql/VectorSiftSmallTest.java
create mode 100644
test/unit/org/apache/cassandra/index/sai/cql/VectorTester.java
create mode 100644
test/unit/org/apache/cassandra/index/sai/cql/VectorTypeTest.java
create mode 100644
test/unit/org/apache/cassandra/index/sai/cql/VectorUpdateDeleteTest.java
create mode 100644
test/unit/org/apache/cassandra/index/sai/memory/VectorMemoryIndexTest.java
create mode 100644 test/unit/org/apache/cassandra/index/sai/utils/Glove.java
create mode 100644 test/unit/org/apache/cassandra/tracing/TracingTestImpl.java
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]