-
Notifications
You must be signed in to change notification settings - Fork 126
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
Tune default values for ef_search and ef_construction for better indexing and search performance #1353
Conversation
5b756ad
to
1e851ef
Compare
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #1353 +/- ##
============================================
- Coverage 85.08% 85.04% -0.05%
- Complexity 1242 1251 +9
============================================
Files 161 162 +1
Lines 5069 5101 +32
Branches 473 477 +4
============================================
+ Hits 4313 4338 +25
- Misses 551 557 +6
- Partials 205 206 +1 ☔ View full report in Codecov by Sentry. |
43d992f
to
6193214
Compare
Do we have test result on recall and latency after the change? |
Yes I have the whole results. I will be updating them on the github issue. |
src/main/java/org/opensearch/knn/index/mapper/MethodFieldMapper.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/knn/index/util/IndexHyperParametersUtil.java
Outdated
Show resolved
Hide resolved
6193214
to
63b8f40
Compare
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.
Nice job. This is a very elegant solution. Have a couple questions/comments about some of the implementation details.
src/main/java/org/opensearch/knn/index/mapper/LegacyFieldMapper.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/knn/index/util/IndexHyperParametersUtil.java
Show resolved
Hide resolved
src/main/java/org/opensearch/knn/index/util/IndexHyperParametersUtil.java
Show resolved
Hide resolved
src/main/java/org/opensearch/knn/index/MethodComponentContext.java
Outdated
Show resolved
Hide resolved
Keeping this PR open, as me and @jmazanec15 are doing some deep-dive to understand do we need to serialize indexCreatedVersion here:
|
080fb9d
080fb9d
to
bc8ea30
Compare
af5c833
to
c71dc12
Compare
Added more integration tests for HNSWPQ where hyper parameters are not set. |
…exing and search performance Signed-off-by: Navneet Verma <[email protected]>
c71dc12
to
bc9a6cf
Compare
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
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!
…exing and search performance (#1353) Signed-off-by: Navneet Verma <[email protected]> (cherry picked from commit feb7968)
…exing and search performance (opensearch-project#1353) Signed-off-by: Navneet Verma <[email protected]>
…exing and search performance (#1353) (#1362) Signed-off-by: Navneet Verma <[email protected]>
Description
Changed the default values for ef_search and ef_constrction for enabling better indexing and search latency for vector search
Issues Resolved
#1354
BWC Testing
Manual Testing
Manual Testing was performed by running
./gradlew run
on 2.11 branch. After this this script was executed with 2.11 arg.Once it is completed, I ran the
./gradlew run --preserve-data
with updated code. This ensured that old indices are still available and shards are initialized. After this I ran the same script with 2.12 as the parameter.Automated Testing
Added new BWC test for rolling and restart upgrade to validate index creation and indexing of documents.
In both the testings validated(via logs) that for all the indices the older values of hyper parameters is intact.
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.