goankur commented on PR #16705:
URL: https://github.com/apache/lucene/pull/16705#issuecomment-5880185891
Thanks for the heads-up @Pulkitg64, I rebased onto main after PR #16628.
@jimczi
The latest commit after rebase does conflict resolution only, no new logic,
but it has two behavioral consequences worth a re-look since the approval
predates both
1. **fp16 rescoring now prefetches** #16628 extracted
`AbstractFullPrecisionVectorSimilarityValuesSource`, and both
`FullPrecisionFloatVectorSimilarityValuesSource` and
`FullPrecisionFloat16VectorSimilarityValuesSource` extend it. The prefetch view
and the two `DoubleValues#prefetch` overrides now live in that base, so fp16
inherits them. The alternative was duplicating `getValues` into the fp32
subclass purely to preserve the old scope, which would undo the de-duplication
#16628 just did. `TestRescoreTopNQueryFloat16Prefetch` mirrors the fp32 test; I
checked both fail when the override in the base is removed.
2. **OffHeapFloat16VectorValues#prefetch** is now the (ord, count) form.
#16628 added the `int[]` override, which issues one madvise per ord. On this
branch the base class finds consecutive runs and calls `prefetch(ord, count)`
once per run, as byte and fp32 already do.
That changes one expectation in the test #16628 added: `prefetch({1, 2}, 5)`
on fp16 now costs a single read rather than two, because `{1, 2}` is one run. I
set it to 1 with a comment at the assertion; the byte and fp32 cases in the
same test use `{1, 3}` and still expect 2.
--
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]