Skip to content

Commit c4bedcf

Browse files
author
Dmitry Yashunin
committed
Refactoring
1 parent 812b3a4 commit c4bedcf

File tree

3 files changed

+20
-20
lines changed

3 files changed

+20
-20
lines changed

hnswlib/hnswalg.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class HierarchicalNSW : public AlgorithmInterface<dist_t, filter_func_t> {
6666
mutable std::atomic<long> metric_distance_computations{0};
6767
mutable std::atomic<long> metric_hops{0};
6868

69-
bool replace_deleted = false;
69+
bool replace_deleted_ = false;
7070

7171
std::mutex deleted_elements_lock;
7272
std::unordered_set<tableint> deleted_elements;
@@ -82,7 +82,7 @@ class HierarchicalNSW : public AlgorithmInterface<dist_t, filter_func_t> {
8282
bool nmslib = false,
8383
size_t max_elements = 0,
8484
bool replace_deleted = false)
85-
: replace_deleted(replace_deleted) {
85+
: replace_deleted_(replace_deleted) {
8686
loadIndex(location, s, max_elements);
8787
}
8888

@@ -97,7 +97,7 @@ class HierarchicalNSW : public AlgorithmInterface<dist_t, filter_func_t> {
9797
: link_list_locks_(max_elements),
9898
link_list_update_locks_(max_update_element_locks),
9999
element_levels_(max_elements),
100-
replace_deleted(replace_deleted) {
100+
replace_deleted_(replace_deleted) {
101101
max_elements_ = max_elements;
102102
num_deleted_ = 0;
103103
data_size_ = s->get_data_size();
@@ -703,7 +703,7 @@ class HierarchicalNSW : public AlgorithmInterface<dist_t, filter_func_t> {
703703
for (size_t i = 0; i < cur_element_count; i++) {
704704
if (isMarkedDeleted(i)) {
705705
num_deleted_ += 1;
706-
if (replace_deleted) deleted_elements.insert(i);
706+
if (replace_deleted_) deleted_elements.insert(i);
707707
}
708708
}
709709

@@ -757,7 +757,7 @@ class HierarchicalNSW : public AlgorithmInterface<dist_t, filter_func_t> {
757757
unsigned char *ll_cur = ((unsigned char *)get_linklist0(internalId))+2;
758758
*ll_cur |= DELETE_MARK;
759759
num_deleted_ += 1;
760-
if (replace_deleted) deleted_elements.insert(internalId);
760+
if (replace_deleted_) deleted_elements.insert(internalId);
761761
} else {
762762
throw std::runtime_error("The requested to delete element is already deleted");
763763
}
@@ -786,7 +786,7 @@ class HierarchicalNSW : public AlgorithmInterface<dist_t, filter_func_t> {
786786
unsigned char *ll_cur = ((unsigned char *)get_linklist0(internalId)) + 2;
787787
*ll_cur &= ~DELETE_MARK;
788788
num_deleted_ -= 1;
789-
if (replace_deleted) deleted_elements.erase(internalId);
789+
if (replace_deleted_) deleted_elements.erase(internalId);
790790
} else {
791791
throw std::runtime_error("The requested to undelete element is not deleted");
792792
}
@@ -817,9 +817,9 @@ class HierarchicalNSW : public AlgorithmInterface<dist_t, filter_func_t> {
817817
*
818818
* If deleted point was replaced returns its label, else returns label of added point
819819
*/
820-
labeltype insertPoint(const void* data_point, labeltype label) {
821-
if (!replace_deleted) {
822-
throw std::runtime_error("Don't use insertPoint when replacement of deleted elements is disabled");
820+
labeltype addPointToVacantPlace(const void* data_point, labeltype label) {
821+
if (!replace_deleted_) {
822+
throw std::runtime_error("Can't use addPointToVacantPlace when replacement of deleted elements is disabled");
823823
}
824824

825825
std::unique_lock <std::mutex> tmp_del_el_lock(deleted_elements_lock);

python_bindings/bindings.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ class Index {
230230
}
231231

232232

233-
py::object insertItems_return_numpy(py::object input, py::object ids_ = py::none(), int num_threads = -1) {
233+
py::object add_items_to_vacant_place_return_numpy(py::object input, py::object ids_ = py::none(), int num_threads = -1) {
234234
size_t rows, features;
235235
hnswlib::labeltype* data_numpy_l = NULL;
236236

@@ -261,7 +261,7 @@ class Index {
261261
normalize_vector(vector_data, norm_array.data());
262262
vector_data = norm_array.data();
263263
}
264-
hnswlib::labeltype label = appr_alg->insertPoint((void*)vector_data, (size_t)id);
264+
hnswlib::labeltype label = appr_alg->addPointToVacantPlace((void*)vector_data, (size_t)id);
265265
data_numpy_l[start] = label;
266266
start = 1;
267267
ep_added = true;
@@ -271,7 +271,7 @@ class Index {
271271
if (normalize == false) {
272272
ParallelFor(start, rows, num_threads, [&](size_t row, size_t threadId) {
273273
size_t id = ids.size() ? ids.at(row) : (cur_l + row);
274-
hnswlib::labeltype label = appr_alg->insertPoint((void*)items.data(row), (size_t)id);
274+
hnswlib::labeltype label = appr_alg->addPointToVacantPlace((void*)items.data(row), (size_t)id);
275275
data_numpy_l[row] = label;
276276
});
277277
}
@@ -283,7 +283,7 @@ class Index {
283283
normalize_vector((float*)items.data(row), (norm_array.data() + start_idx));
284284

285285
size_t id = ids.size() ? ids.at(row) : (cur_l + row);
286-
hnswlib::labeltype label = appr_alg->insertPoint((void*)(norm_array.data() + start_idx), (size_t)id);
286+
hnswlib::labeltype label = appr_alg->addPointToVacantPlace((void*)(norm_array.data() + start_idx), (size_t)id);
287287
data_numpy_l[row] = label;
288288
});
289289
}
@@ -472,7 +472,7 @@ class Index {
472472
"ef"_a = appr_alg->ef_,
473473
"has_deletions"_a = (bool)appr_alg->num_deleted_,
474474
"size_links_per_element"_a = appr_alg->size_links_per_element_,
475-
"replace_deleted"_a = appr_alg->replace_deleted,
475+
"replace_deleted"_a = appr_alg->replace_deleted_,
476476

477477
"label_lookup_external"_a = py::array_t<hnswlib::labeltype>(
478478
{ appr_alg->label_lookup_.size() }, // shape
@@ -639,7 +639,7 @@ class Index {
639639
if (d.contains("replace_deleted")) {
640640
replace_deleted = d["replace_deleted"].cast<bool>();
641641
}
642-
appr_alg->replace_deleted = replace_deleted;
642+
appr_alg->replace_deleted_= replace_deleted;
643643

644644
appr_alg->num_deleted_ = 0;
645645
bool has_deletions = d["has_deletions"].cast<bool>();
@@ -941,8 +941,8 @@ PYBIND11_PLUGIN(hnswlib) {
941941
py::arg("data"),
942942
py::arg("ids") = py::none(),
943943
py::arg("num_threads") = -1)
944-
.def("insert_items",
945-
&Index<float>::insertItems_return_numpy,
944+
.def("add_items_to_vacant_place",
945+
&Index<float>::add_items_to_vacant_place_return_numpy,
946946
py::arg("data"),
947947
py::arg("ids") = py::none(),
948948
py::arg("num_threads") = -1)

python_bindings/tests/bindings_test_replace.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def testRandomSelf(self):
7272
print("Inserting batch 3 by replacing deleted elements")
7373
# Maximum number of elements is reached therefore we cannot add new items
7474
# but we can replace the deleted ones
75-
labels_replaced = hnsw_index.insert_items(data3, labels3)
75+
labels_replaced = hnsw_index.add_items_to_vacant_place(data3, labels3)
7676
labels2_deleted_list = [l[0] for l in labels2_deleted]
7777
labels_replaced_list = labels_replaced.tolist()
7878
labels2_deleted_list.sort()
@@ -114,7 +114,7 @@ def testRandomSelf(self):
114114

115115
# Insert batch 4
116116
print("Inserting batch 4 by replacing deleted elements")
117-
labels_replaced = hnsw_index.insert_items(data4, labels4)
117+
labels_replaced = hnsw_index.add_items_to_vacant_place(data4, labels4)
118118

119119
# Check recall
120120
print("Checking recall")
@@ -133,7 +133,7 @@ def testRandomSelf(self):
133133
del hnsw_index
134134
# Insert batch 3
135135
print("Inserting batch 3 by replacing deleted elements")
136-
labels_replaced = hnsw_index_pckl.insert_items(data3, labels3)
136+
labels_replaced = hnsw_index_pckl.add_items_to_vacant_place(data3, labels3)
137137

138138
# Check recall
139139
print("Checking recall")

0 commit comments

Comments
 (0)