shatejas commented on code in PR #13985:
URL: https://github.com/apache/lucene/pull/13985#discussion_r1835999756
##########
lucene/core/src/java/org/apache/lucene/codecs/KnnVectorsReader.java:
##########
@@ -123,4 +123,11 @@ public abstract void search(
public KnnVectorsReader getMergeInstance() {
return this;
}
+
+ /**
+ * Optional: reset or close merge resources used in the reader
+ *
+ * <p>The default implementation is empty
+ */
+ public void finishMerge() throws IOException {}
Review Comment:
> I wonder if we should reuse the close() method of merge instances for
this, what do you think @uschindler ?
I went with that solution at first, `close` is called way to late, to be
able to benefit the search requests going on as per my understanding. I was
looking for something to switch back to random access earlier and thats how I
landed with this approach. Happy to move it to `close()` if there is a
preference
>> Separately, it would be nice to improve the asserting framework
(AssertingKnnVectorsReader in this case) to validate that finishMerge() is
always called on merge instances.
Wasn't aware of AssertingKnnVectorsReader. I can take a look
##########
lucene/core/src/java/org/apache/lucene/codecs/lucene99/Lucene99HnswVectorsReader.java:
##########
@@ -113,6 +114,25 @@ public Lucene99HnswVectorsReader(SegmentReadState state,
FlatVectorsReader flatV
}
}
+ private Lucene99HnswVectorsReader(
+ Lucene99HnswVectorsReader reader, KnnVectorsReader flatVectorsReader) {
+ assert flatVectorsReader instanceof FlatVectorsReader;
Review Comment:
>> I would rather make this ctor take a FlatVectorsReader and push the
responsibility to callers to make the cast
This makes sense to me, I will change it
>> maybe we don't even need a cast if we make getMergeInstance() return a
FlatVectorsReader
This seems difficult as of now,
[MergeState](https://github.com/shatejas/lucene/blob/12ca4779b962c96367f3e6a8b06523837e5e6434/lucene/core/src/java/org/apache/lucene/index/MergeState.java#L157)
expects KNNVectorsReader and FlatVectorsReader is wrapped inside of
KNNVectorsReader
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]