@@ -100,8 +100,6 @@ class IndexVamana {
100100 l_build_ = std::stol (value);
101101 } else if (key == " r_max_degree" ) {
102102 r_max_degree_ = std::stol (value);
103- } else if (key == " b_backtrack" ) {
104- b_backtrack_ = std::stol (value);
105103 } else if (key == " feature_type" ) {
106104 feature_datatype_ = string_to_datatype (value);
107105 } else if (key == " id_type" ) {
@@ -111,10 +109,6 @@ class IndexVamana {
111109 }
112110 }
113111 }
114-
115- if (b_backtrack_ == 0 ) {
116- b_backtrack_ = l_build_;
117- }
118112 }
119113
120114 /* *
@@ -141,7 +135,6 @@ class IndexVamana {
141135 index_ = uri_dispatch_table.at (type)(ctx, group_uri, temporal_policy);
142136 l_build_ = index_->l_build ();
143137 r_max_degree_ = index_->r_max_degree ();
144- b_backtrack_ = index_->b_backtrack ();
145138
146139 if (dimensions_ != 0 && dimensions_ != index_->dimensions ()) {
147140 throw std::runtime_error (
@@ -175,13 +168,12 @@ class IndexVamana {
175168
176169 // Create a new index. Note that we may have already loaded an existing
177170 // index by URI. In that case, we have updated our local state (i.e.
178- // l_build_, r_max_degree_, b_backtrack_ ), but we should also use the
171+ // l_build_, r_max_degree_), but we should also use the
179172 // timestamp from that already loaded index.
180173 index_ = dispatch_table.at (type)(
181174 training_set.num_vectors (),
182175 l_build_,
183176 r_max_degree_,
184- b_backtrack_,
185177 index_ ? std::make_optional<TemporalPolicy>(index_->temporal_policy ()) :
186178 std::nullopt );
187179
@@ -272,10 +264,6 @@ class IndexVamana {
272264 return r_max_degree_;
273265 }
274266
275- constexpr auto b_backtrack () const {
276- return b_backtrack_;
277- }
278-
279267 constexpr auto feature_type () const {
280268 return feature_datatype_;
281269 }
@@ -347,7 +335,6 @@ class IndexVamana {
347335 [[nodiscard]] virtual size_t dimensions () const = 0;
348336 [[nodiscard]] virtual size_t l_build () const = 0;
349337 [[nodiscard]] virtual size_t r_max_degree () const = 0;
350- [[nodiscard]] virtual size_t b_backtrack () const = 0;
351338 [[nodiscard]] virtual TemporalPolicy temporal_policy () const = 0;
352339 };
353340
@@ -365,14 +352,8 @@ class IndexVamana {
365352 size_t num_vectors,
366353 size_t l_build,
367354 size_t r_max_degree,
368- size_t b_backtrack,
369355 std::optional<TemporalPolicy> temporal_policy)
370- : impl_index_(
371- num_vectors,
372- l_build,
373- r_max_degree,
374- b_backtrack,
375- temporal_policy) {
356+ : impl_index_(num_vectors, l_build, r_max_degree, temporal_policy) {
376357 }
377358
378359 index_impl (
@@ -474,10 +455,6 @@ class IndexVamana {
474455 return impl_index_.r_max_degree ();
475456 }
476457
477- size_t b_backtrack () const override {
478- return impl_index_.b_backtrack ();
479- }
480-
481458 TemporalPolicy temporal_policy () const override {
482459 return impl_index_.temporal_policy ();
483460 }
@@ -490,7 +467,7 @@ class IndexVamana {
490467 };
491468
492469 // clang-format off
493- using constructor_function = std::function<std::unique_ptr<index_base>(size_t , size_t , size_t , size_t , std::optional<TemporalPolicy>)>;
470+ using constructor_function = std::function<std::unique_ptr<index_base>(size_t , size_t , size_t , std::optional<TemporalPolicy>)>;
494471 using table_type = std::map<std::tuple<tiledb_datatype_t , tiledb_datatype_t , tiledb_datatype_t >, constructor_function>;
495472 static const table_type dispatch_table;
496473
@@ -506,7 +483,6 @@ class IndexVamana {
506483 size_t dimensions_ = 0 ;
507484 size_t l_build_ = 100 ;
508485 size_t r_max_degree_ = 64 ;
509- size_t b_backtrack_ = 0 ;
510486 tiledb_datatype_t feature_datatype_{TILEDB_ANY};
511487 tiledb_datatype_t id_datatype_{TILEDB_ANY};
512488 static constexpr tiledb_datatype_t adjacency_row_index_datatype_{
@@ -516,18 +492,18 @@ class IndexVamana {
516492
517493// clang-format off
518494const IndexVamana::table_type IndexVamana::dispatch_table = {
519- {{TILEDB_INT8, TILEDB_UINT32, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<int8_t , uint32_t , uint32_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
520- {{TILEDB_UINT8, TILEDB_UINT32, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<uint8_t , uint32_t , uint32_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
521- {{TILEDB_FLOAT32, TILEDB_UINT32, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<float , uint32_t , uint32_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
522- {{TILEDB_INT8, TILEDB_UINT32, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<int8_t , uint32_t , uint64_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
523- {{TILEDB_UINT8, TILEDB_UINT32, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<uint8_t , uint32_t , uint64_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
524- {{TILEDB_FLOAT32, TILEDB_UINT32, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<float , uint32_t , uint64_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
525- {{TILEDB_INT8, TILEDB_UINT64, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<int8_t , uint64_t , uint32_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
526- {{TILEDB_UINT8, TILEDB_UINT64, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<uint8_t , uint64_t , uint32_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
527- {{TILEDB_FLOAT32, TILEDB_UINT64, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<float , uint64_t , uint32_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
528- {{TILEDB_INT8, TILEDB_UINT64, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<int8_t , uint64_t , uint64_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
529- {{TILEDB_UINT8, TILEDB_UINT64, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<uint8_t , uint64_t , uint64_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
530- {{TILEDB_FLOAT32, TILEDB_UINT64, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, size_t b_backtrack, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<float , uint64_t , uint64_t >>>(num_vectors, l_build, r_max_degree, b_backtrack , temporal_policy); }},
495+ {{TILEDB_INT8, TILEDB_UINT32, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<int8_t , uint32_t , uint32_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
496+ {{TILEDB_UINT8, TILEDB_UINT32, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<uint8_t , uint32_t , uint32_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
497+ {{TILEDB_FLOAT32, TILEDB_UINT32, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<float , uint32_t , uint32_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
498+ {{TILEDB_INT8, TILEDB_UINT32, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<int8_t , uint32_t , uint64_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
499+ {{TILEDB_UINT8, TILEDB_UINT32, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<uint8_t , uint32_t , uint64_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
500+ {{TILEDB_FLOAT32, TILEDB_UINT32, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<float , uint32_t , uint64_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
501+ {{TILEDB_INT8, TILEDB_UINT64, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<int8_t , uint64_t , uint32_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
502+ {{TILEDB_UINT8, TILEDB_UINT64, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<uint8_t , uint64_t , uint32_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
503+ {{TILEDB_FLOAT32, TILEDB_UINT64, TILEDB_UINT32}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<float , uint64_t , uint32_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
504+ {{TILEDB_INT8, TILEDB_UINT64, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<int8_t , uint64_t , uint64_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
505+ {{TILEDB_UINT8, TILEDB_UINT64, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<uint8_t , uint64_t , uint64_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
506+ {{TILEDB_FLOAT32, TILEDB_UINT64, TILEDB_UINT64}, [](size_t num_vectors, size_t l_build, size_t r_max_degree, std::optional<TemporalPolicy> temporal_policy) { return std::make_unique<index_impl<vamana_index<float , uint64_t , uint64_t >>>(num_vectors, l_build, r_max_degree, temporal_policy); }},
531507};
532508
533509const IndexVamana::uri_table_type IndexVamana::uri_dispatch_table = {
0 commit comments