Fix performance regression in ApproximatePointRangeQuery with Lucene 10.2.1 change#18358
Conversation
|
Waiting for this benchmark PR to get merged #18353, once merged I will test the performance run against this PR. Local tests shown the regression has been fixed. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #18358 +/- ##
============================================
+ Coverage 72.60% 72.69% +0.08%
- Complexity 67682 67766 +84
============================================
Files 5497 5497
Lines 311819 311811 -8
Branches 45265 45261 -4
============================================
+ Hits 226409 226657 +248
+ Misses 66941 66736 -205
+ Partials 18469 18418 -51 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
As we discussed in #18337, in addition to the implementations, we must also control the order of visiting BKD nodes; otherwise, the result of sorted values will be wrong. It appears that we are undertaking identical work (#18337), and I am attempting to fix it as outlined here. If you are pleasure to fix it this way, you can continue. |
|
❌ Gradle check result for 63e08e7: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
|
{"run-benchmark-test": "id_4"} |
|
{"run-benchmark-test": "id_13"} |
|
The Jenkins job url is https://build.ci.opensearch.org/job/benchmark-pull-request/3278/ . Final results will be published once the job is completed. |
|
The Jenkins job url is https://build.ci.opensearch.org/job/benchmark-pull-request/3279/ . Final results will be published once the job is completed. |
Benchmark ResultsBenchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-pull-request/3278/
|
Benchmark Baseline Comparison ResultsBenchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-compare/104/
|
Benchmark ResultsBenchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-pull-request/3280/
|
Benchmark Baseline Comparison ResultsBenchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-compare/105/
|
|
Just a follow up to see if we can get this merged. |
…e 10.2.1 change (opensearch-project#18358) --------- Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
…e 10.2.1 change (opensearch-project#18358) --------- Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
…e 10.2.1 change (opensearch-project#18358) --------- Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
…e 10.2.1 change (opensearch-project#18358) --------- Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>Signed-off-by: TJ Neuenfeldt <tjneu@amazon.com>
…e 10.2.1 change (opensearch-project#18358) --------- Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
…e 10.2.1 change (opensearch-project#18358) --------- Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
Description
Fix regression
Coming from #17961, after upgrading the Lucene version to 10.2.1 seen regression with approximation framework. The current flow:
Lucene 10.2 introduced SIMD vectorized decoding for doc IDs via
readInts24, which delivers oneIntsRefper leaf.From apache/lucene#14176 for BPV = 24, Lucene now decodes the entire block in one go and calls
visitor.visit(IntsRef)just once per leaf block.Also the equivalent
adder.add(IntsRef)was also handled in https://github.com/apache/lucene/pull/14138/files.Update the BKD walk for
intersectRightwith a true right to left traversalMore details #18358 (comment) and #18358 (comment).
Approximation desc sort bug fix related to visit methods and improve the code coverage
Fixed the bug as mentioned here #18358 (comment).
Related Issues
#18313
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.