Skip to content
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

Mark nmslib references for vector search as deprecated #9107

Merged
merged 4 commits into from
Feb 4, 2025

Conversation

kotwanikunal
Copy link
Member

Description

Issues Resolved

N/A

Version

List the OpenSearch version to which this PR applies, e.g. 2.14, 2.12--2.14, or all.

= 2.19.0

Frontend features

N/A

Checklist

  • By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
    For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Copy link

Thank you for submitting your PR. The PR states are In progress (or Draft) -> Tech review -> Doc review -> Editorial review -> Merged.

Before you submit your PR for doc review, make sure the content is technically accurate. If you need help finding a tech reviewer, tag a maintainer.

When you're ready for doc review, tag the assignee of this PR. The doc reviewer may push edits to the PR directly or leave comments and editorial suggestions for you to address (let us know in a comment if you have a preference). The doc reviewer will arrange for an editorial review.

Copy link
Collaborator

@kolchfa-aws kolchfa-aws left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @kotwanikunal! A couple of styling suggestions. Also, should we remove some of the mentions of NMSLIB in the text and just keep it in the tables?

@kolchfa-aws kolchfa-aws added release-notes PR: Include this PR in the automated release notes v2.19.0 labels Jan 24, 2025
Copy link
Collaborator

@natebower natebower left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kolchfa-aws @kotwanikunal Please see my comments and changes and let me know if you have any questions. Thanks!

@@ -173,11 +173,11 @@ For the warmup operation to function properly, follow these best practices:
Introduced 2.14
{: .label .label-purple }

During approximate k-NN search or warmup operations, the native library indexes (`nmslib` and `faiss` engines) are loaded into native memory. Currently, you can evict an index from cache or native memory by either deleting the index or setting the k-NN cluster settings `knn.cache.item.expiry.enabled` and `knn.cache.item.expiry.minutes`, which removes the index from the cache if it is idle for a given period of time. However, you cannot evict an index from the cache without deleting the index. To solve this problem, you can use the k-NN clear cache API operation, which clears a given set of indexes from the cache.
During approximate k-NN search or warmup operations, the native library indexes (for the `faiss` and `nmslib` [deprecated] engines) are loaded into native memory. Currently, you can evict an index from cache or native memory by either deleting the index or setting the k-NN cluster settings `knn.cache.item.expiry.enabled` and `knn.cache.item.expiry.minutes`, which removes the index from the cache if it is idle for a given period of time. However, you cannot evict an index from the cache without deleting the index. To solve this problem, you can use the k-NN clear cache API operation, which clears a given set of indexes from the cache.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2nd sentence: Should "the" precede the first instance of "cache"?

@@ -92,7 +92,7 @@ Mapping parameter | Required | Default | Updatable | Description
:--- | :--- | :--- | :--- | :---
`name` | true | n/a | false | The identifier for the nearest neighbor method.
`space_type` | false | l2 | false | The vector space used to calculate the distance between vectors. Note: This value can also be specified at the top level of the mapping.
`engine` | false | faiss | false | The approximate k-NN library to use for indexing and search. The available libraries are `faiss`, `nmslib`, and `lucene`.
`engine` | false | faiss | false | The approximate k-NN library to use for indexing and search. The available libraries are `faiss`, `lucene`, and `nmslib` (deprecated).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the third column, should "faiss" be either "Faiss" or faiss?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but I'll address it as part of a complete revamp of the vector search section. Otherwise, we'd need to change the whole column.

@kolchfa-aws kolchfa-aws added the 6 - Done but waiting to merge PR: The work is done and ready to merge label Jan 31, 2025
@kotwanikunal
Copy link
Member Author

Thank you, @kotwanikunal! A couple of styling suggestions. Also, should we remove some of the mentions of NMSLIB in the text and just keep it in the tables?

I think we should keep the text with the deprecated notices for now.

@kolchfa-aws kolchfa-aws removed the 6 - Done but waiting to merge PR: The work is done and ready to merge label Feb 4, 2025
@kolchfa-aws kolchfa-aws merged commit a94277f into opensearch-project:main Feb 4, 2025
6 checks passed
@kotwanikunal kotwanikunal deleted the nmslib-deprecate branch February 4, 2025 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-notes PR: Include this PR in the automated release notes v2.19.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants