Skip to content

Conversation

@msokolov
Copy link
Contributor

Description

adds row locks to OnHeapHnswGraph

seems to be broken in the way it adds new nodes to upper levels such that they become discoverable before they have neighbors?

I shared this mostly because we might want to integrate the NeighborIterator in order to keep changes localized to the HnswGraph classes and not in HnswGraphSearcher. Also this has the idea of passing in an ExecutorService rather than creating one in the util/hnsw

@msokolov msokolov mentioned this pull request Oct 15, 2023
* @param node ordinal of a node in the graph, must be ≥ 0 and < {@link HnswGraph#size()}.
*/
public NeighborIterator lockNeighbors(int level, int node) throws IOException {
throw new UnsupportedOperationException("concurrent access not implemented");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this break back-compatibility? (e.g. when reading a Lucene90 index and we're not able to search on it because the off heap graph there did not implement this?)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah true. I think the impl for Lucene95HnswVectorsReader.OffHeapHnswGraph can be moved up to here

@github-actions
Copy link
Contributor

github-actions bot commented Jan 8, 2024

This PR has not had activity in the past 2 weeks, labeling it as stale. If the PR is waiting for review, notify the [email protected] list. Thank you for your contribution!

@github-actions github-actions bot added the Stale label Jan 8, 2024
@msokolov msokolov closed this Jan 9, 2024
@msokolov msokolov deleted the hnswlock branch July 17, 2024 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants