Skip to content

Commit 9f0beab

Browse files
committed
[SVS] Add Tiered SVS index implementation
* Vectors moved to backend in 1 background job as a bulk * Add basic unit tests for SVS tiered index * Add Python binding for SVS Tiered index * Backend index synchronized for deleted vectors
1 parent 09e7b1c commit 9f0beab

File tree

8 files changed

+3722
-8
lines changed

8 files changed

+3722
-8
lines changed

src/VecSim/algorithms/svs/svs.h

+14-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ struct SVSIndexBase {
1919
virtual ~SVSIndexBase() = default;
2020
virtual int addVectors(const void *vectors_data, const labelType *labels, size_t n) = 0;
2121
virtual int deleteVectors(const labelType *labels, size_t n) = 0;
22+
virtual bool isLabelExists(const labelType label) const = 0;
2223
};
2324

2425
template <typename MetricType, typename DataType, size_t QuantBits, size_t ResidualBits = 0>
@@ -243,6 +244,10 @@ class SVSIndex : public VecSimIndexAbstract<svs_details::vecsim_dt<DataType>, fl
243244

244245
~SVSIndex() = default;
245246

247+
bool isLabelExists(const labelType label) const override {
248+
return impl_ ? impl_->has_id(label) : false;
249+
}
250+
246251
size_t indexSize() const override { return impl_ ? impl_->size() : 0; }
247252

248253
size_t indexCapacity() const override {
@@ -258,7 +263,7 @@ class SVSIndex : public VecSimIndexAbstract<svs_details::vecsim_dt<DataType>, fl
258263
return info;
259264
}
260265

261-
VecSimIndexDInfo debugInfo() const override {
266+
VecSimIndexDebugInfo debugInfo() const override {
262267
VecSimIndexDebugInfo info;
263268
info.commonInfo = this->getCommonInfo();
264269
info.commonInfo.basicInfo.algo = VecSimAlgo_SVS;
@@ -469,6 +474,14 @@ class SVSIndex : public VecSimIndexAbstract<svs_details::vecsim_dt<DataType>, fl
469474
return res;
470475
}
471476

477+
void runGC() override {
478+
if (impl_) {
479+
impl_->consolidate();
480+
impl_->compact();
481+
}
482+
changes_num = 0;
483+
}
484+
472485
#ifdef BUILD_TESTS
473486
virtual void fitMemory() {};
474487
#endif

0 commit comments

Comments
 (0)