summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-08-15 08:44:44 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-08-15 08:44:44 +0000
commit6317934c7f314b7debf7df0a59d0e0228211b809 (patch)
tree660f4470f4391f5ba6ed5dcf4e668916977346e7 /searchlib
parent108b10c069c5a80ab3027caa5aa62aedf184ef43 (diff)
Use a simple std::vector<bool> for visited markin as most bits will be set.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp b/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp
index 545ee7cfa96..a1515534cbc 100644
--- a/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp
@@ -658,17 +658,17 @@ HnswIndex::count_reachable_nodes() const
if (search_level < 0) {
return 0;
}
- auto visited = _visited_set_pool.get(_graph.size());
+ std::vector<bool> visited(_graph.size());
LinkArray found_links;
found_links.push_back(entry.docid);
- visited.mark(entry.docid);
+ visited[entry.docid] = true;
while (search_level >= 0) {
for (uint32_t idx = 0; idx < found_links.size(); ++idx) {
uint32_t docid = found_links[idx];
auto neighbors = _graph.get_link_array(docid, search_level);
for (uint32_t neighbor : neighbors) {
- if (visited.is_marked(neighbor)) continue;
- visited.mark(neighbor);
+ if (visited[neighbor]) continue;
+ visited[neighbor] = true;
found_links.push_back(neighbor);
}
}