zhaih commented on code in PR #12683:
URL: https://github.com/apache/lucene/pull/12683#discussion_r1361334258


##########
lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraph.java:
##########
@@ -59,11 +60,26 @@ protected HnswGraph() {}
    *
    * @param level level of the graph
    * @param target ordinal of a node in the graph, must be ≥ 0 and < 
{@link
-   *     FloatVectorValues#size()}.
+   *     HnswGraph#size()}.
    */
   public abstract void seek(int level, int target) throws IOException;
 
-  /** Returns the number of nodes in the graph */
+  public interface NeighborIterator extends Closeable {
+    int nextNeighbor() throws IOException;
+    int size();
+  }
+
+  /**
+   * Retrieve an iterator over the neighbors of a graph node, acquiring a read 
lock. Closing the iterator
+   * releases the lock.
+   * @param level level of the graph
+   * @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");

Review Comment:
   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?)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to