-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable numeric sort optimization support for all numeric types #6424
Conversation
Signed-off-by: gashutos <[email protected]>
Signed-off-by: gashutos <[email protected]>
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
…ling Signed-off-by: gashutos <[email protected]>
Gradle Check (Jenkins) Run Completed with:
|
Signed-off-by: gashutos <[email protected]>
Gradle Check (Jenkins) Run Completed with:
|
I resolved the CHANGELOG conflict. Code LGTM, let's merge on green. |
Thanks @dblock ! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good! Just a couple nits.
server/src/main/java/org/opensearch/action/search/SearchPhaseController.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/opensearch/search/sort/SortedWiderNumericSortField.java
Outdated
Show resolved
Hide resolved
.../src/main/java/org/opensearch/index/fielddata/fieldcomparator/IntValuesComparatorSource.java
Outdated
Show resolved
Hide resolved
Unrelated precommit failure:
Refired precommit job. |
Gradle Check (Jenkins) Run Completed with:
|
Signed-off-by: gashutos <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM once green! Nice work!
Awesome , thanks Nick ! |
Gradle Check (Jenkins) Run Completed with:
|
@gashutos watch the auto-backport (might need to be done manually if it fails) |
* Adding numeric optimization support for all numeric types Signed-off-by: gashutos <[email protected]> * modifying CHANGELOG.md Signed-off-by: gashutos <[email protected]> * Handling multi-cluster scenario where SortField serialization was failing Signed-off-by: gashutos <[email protected]> * Fixing javadoc errors Signed-off-by: gashutos <[email protected]> * Fixing nested sort integ tests Signed-off-by: gashutos <[email protected]> * Stremlining behaviour of custom comparator tests too Signed-off-by: gashutos <[email protected]> * Adding more integ tests for IntValuesComparatorSource & fixing few ITs Signed-off-by: gashutos <[email protected]> * Fixing few more integ tests Signed-off-by: gashutos <[email protected]> * Streamlining applySortWidening method with CreateSort and avoid modifying cteated objects of sort Signed-off-by: gashutos <[email protected]> * Correcting licence header Signed-off-by: gashutos <[email protected]> --------- Signed-off-by: gashutos <[email protected]> Co-authored-by: Daniel (dB.) Doubrovkine <[email protected]> (cherry picked from commit e8425fc) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
#6849) * Adding numeric optimization support for all numeric types * modifying CHANGELOG.md * Handling multi-cluster scenario where SortField serialization was failing * Fixing javadoc errors * Fixing nested sort integ tests * Stremlining behaviour of custom comparator tests too * Adding more integ tests for IntValuesComparatorSource & fixing few ITs * Fixing few more integ tests * Streamlining applySortWidening method with CreateSort and avoid modifying cteated objects of sort * Correcting licence header --------- (cherry picked from commit e8425fc) Signed-off-by: gashutos <[email protected]> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Daniel (dB.) Doubrovkine <[email protected]>
…earch-project#6424) * Adding numeric optimization support for all numeric types Signed-off-by: gashutos <[email protected]> * modifying CHANGELOG.md Signed-off-by: gashutos <[email protected]> * Handling multi-cluster scenario where SortField serialization was failing Signed-off-by: gashutos <[email protected]> * Fixing javadoc errors Signed-off-by: gashutos <[email protected]> * Fixing nested sort integ tests Signed-off-by: gashutos <[email protected]> * Stremlining behaviour of custom comparator tests too Signed-off-by: gashutos <[email protected]> * Adding more integ tests for IntValuesComparatorSource & fixing few ITs Signed-off-by: gashutos <[email protected]> * Fixing few more integ tests Signed-off-by: gashutos <[email protected]> * Streamlining applySortWidening method with CreateSort and avoid modifying cteated objects of sort Signed-off-by: gashutos <[email protected]> * Correcting licence header Signed-off-by: gashutos <[email protected]> --------- Signed-off-by: gashutos <[email protected]> Co-authored-by: Daniel (dB.) Doubrovkine <[email protected]> Signed-off-by: Valentin Mitrofanov <[email protected]>
Description
Enable sort optimization for all remaining Numeric types which were not covered in our last PR 6321
The main issue supporting these remaining NumericTypes was its merging capabilities during field mapping change for indices. That is resolved in this PR by introducing wider size comparator during merge.
Below remainig types were enabled as a part of this PR.
The performance gain we had with this is very huge, almost 10x gain on server side latency comparison. I have listed down few benchmarks in testing section.
Performance improvement
Below is server side latency comparison. Units are in ms.
Dataset as of now I have are smaller for float & short types, but improvement in 'x' wise is pretty wide.
http_logs is having largest ingested data, so latency we have there higher compare to other workload during sorting. But in case of relative latency w.r.t w/out sort optimization in 'x' multiple wise gives us similar improvement.
Issues Resolved
6326
Tested
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.