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

Add model version to model metadata and change model metadata reads to be from cluster metadata #2005

Merged
merged 13 commits into from
Sep 5, 2024

Conversation

ryanbogan
Copy link
Member

@ryanbogan ryanbogan commented Aug 27, 2024

Description

Adds the OpenSearch version with which a model is created to its metadata. Additionally, changes modelMetadata reads to read from cluster metadata in order to eliminate an unnecessary get model call.

This change helps prevent null pointer exceptions, since we can tell which variables are present in the metadata based on the version. Additionally, it is required for re-scoring features that are being added as part of disk-based search.

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff.
  • Public documentation issue/PR created.

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.

Signed-off-by: Ryan Bogan <[email protected]>
@jmazanec15
Copy link
Member

@ryanbogan
Copy link
Member Author

@ryanbogan I think we might need to update https://github.com/opensearch-project/k-NN/blob/main/src/main/resources/mappings/model-index.json

Ah good catch, will push fix

navneet1v
navneet1v previously approved these changes Sep 3, 2024
@ryanbogan
Copy link
Member Author

Skipping changelog because change is in release notes

throw new IllegalArgumentException(
"Illegal format for model metadata. Must be of the form "
+ "\"<KNNEngine>,<SpaceType>,<Dimension>,<ModelState>,<Timestamp>,<Description>,<Error>\" or "
+ "\"<KNNEngine>,<SpaceType>,<Dimension>,<ModelState>,<Timestamp>,<Description>,<Error>,<NodeAssignment>\" or "
+ "\"<KNNEngine>,<SpaceType>,<Dimension>,<ModelState>,<Timestamp>,<Description>,<Error>,<NodeAssignment>,<MethodContext>\" or "
+ "\"<KNNEngine>,<SpaceType>,<Dimension>,<ModelState>,<Timestamp>,<Description>,<Error>,<NodeAssignment>,<MethodContext>,<VectorDataType>\". or "
+ "\"<KNNEngine>,<SpaceType>,<Dimension>,<ModelState>,<Timestamp>,<Description>,<Error>,<NodeAssignment>,<MethodContext>,<VectorDataType>,<Mode>,<CompressionLevel>\"."
+ "\"<KNNEngine>,<SpaceType>,<Dimension>,<ModelState>,<Timestamp>,<Description>,<Error>,<NodeAssignment>,<MethodContext>,<VectorDataType>,<Mode>,<CompressionLevel>\" or "
Copy link
Member

Choose a reason for hiding this comment

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

FAR: since Mode, CLevel and Version are all same release, we can simplify this.

Signed-off-by: John Mazanec <[email protected]>
jmazanec15
jmazanec15 previously approved these changes Sep 5, 2024
Copy link
Member

@jmazanec15 jmazanec15 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@Vikasht34 Vikasht34 left a comment

Choose a reason for hiding this comment

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

LGTM

@naveentatikonda
Copy link
Member

@ryanbogan can you rebase this PR with main branch to fix conflicts ?

@naveentatikonda naveentatikonda merged commit 6814c8f into opensearch-project:main Sep 5, 2024
29 checks passed
@ryanbogan ryanbogan deleted the add_model_version branch September 5, 2024 17:30
@opensearch-trigger-bot
Copy link
Contributor

The backport to 2.x failed:

The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:

# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-2.x 2.x
# Navigate to the new working tree
cd .worktrees/backport-2.x
# Create a new branch
git switch --create backport/backport-2005-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 6814c8f60707ff8e3be835558ab35ae5a9ea0c1a
# Push it to GitHub
git push --set-upstream origin backport/backport-2005-to-2.x
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-2.x

Then, create a pull request where the base branch is 2.x and the compare/head branch is backport/backport-2005-to-2.x.

@opensearch-trigger-bot
Copy link
Contributor

The backport to 2.17 failed:

The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:

# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-2.17 2.17
# Navigate to the new working tree
cd .worktrees/backport-2.17
# Create a new branch
git switch --create backport/backport-2005-to-2.17
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 6814c8f60707ff8e3be835558ab35ae5a9ea0c1a
# Push it to GitHub
git push --set-upstream origin backport/backport-2005-to-2.17
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-2.17

Then, create a pull request where the base branch is 2.17 and the compare/head branch is backport/backport-2005-to-2.17.

ryanbogan added a commit that referenced this pull request Sep 5, 2024
…o be from cluster metadata (#2005)

* Add model version to model metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add model version to model metadata and change model metadata reads to be from cluster metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add changelog entry

Signed-off-by: Ryan Bogan <[email protected]>

* Set version from config context

Signed-off-by: Ryan Bogan <[email protected]>

* Fix spotless

Signed-off-by: Ryan Bogan <[email protected]>

* Update model index mappings

Signed-off-by: Ryan Bogan <[email protected]>

* Change field mapper to read model version

Signed-off-by: Ryan Bogan <[email protected]>

* Fix tests

Signed-off-by: Ryan Bogan <[email protected]>

* remove println

Signed-off-by: John Mazanec <[email protected]>

---------

Signed-off-by: Ryan Bogan <[email protected]>
Signed-off-by: John Mazanec <[email protected]>
Co-authored-by: John Mazanec <[email protected]>
(cherry picked from commit 6814c8f)
naveentatikonda pushed a commit that referenced this pull request Sep 5, 2024
…o be from cluster metadata (#2005) (#2054)

* Add model version to model metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add model version to model metadata and change model metadata reads to be from cluster metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add changelog entry

Signed-off-by: Ryan Bogan <[email protected]>

* Set version from config context

Signed-off-by: Ryan Bogan <[email protected]>

* Fix spotless

Signed-off-by: Ryan Bogan <[email protected]>

* Update model index mappings

Signed-off-by: Ryan Bogan <[email protected]>

* Change field mapper to read model version

Signed-off-by: Ryan Bogan <[email protected]>

* Fix tests

Signed-off-by: Ryan Bogan <[email protected]>

* remove println

Signed-off-by: John Mazanec <[email protected]>

---------

Signed-off-by: Ryan Bogan <[email protected]>
Signed-off-by: John Mazanec <[email protected]>
Co-authored-by: John Mazanec <[email protected]>
(cherry picked from commit 6814c8f)
ryanbogan added a commit that referenced this pull request Sep 6, 2024
…o be from cluster metadata (#2005)

* Add model version to model metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add model version to model metadata and change model metadata reads to be from cluster metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add changelog entry

Signed-off-by: Ryan Bogan <[email protected]>

* Set version from config context

Signed-off-by: Ryan Bogan <[email protected]>

* Fix spotless

Signed-off-by: Ryan Bogan <[email protected]>

* Update model index mappings

Signed-off-by: Ryan Bogan <[email protected]>

* Change field mapper to read model version

Signed-off-by: Ryan Bogan <[email protected]>

* Fix tests

Signed-off-by: Ryan Bogan <[email protected]>

* remove println

Signed-off-by: John Mazanec <[email protected]>

---------

Signed-off-by: Ryan Bogan <[email protected]>
Signed-off-by: John Mazanec <[email protected]>
Co-authored-by: John Mazanec <[email protected]>
(cherry picked from commit 6814c8f)
navneet1v pushed a commit that referenced this pull request Sep 9, 2024
…etadata reads to be from cluster metadata (#2063)

* Add model version to model metadata and change model metadata reads to be from cluster metadata (#2005)

* Add model version to model metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add model version to model metadata and change model metadata reads to be from cluster metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add changelog entry

Signed-off-by: Ryan Bogan <[email protected]>

* Set version from config context

Signed-off-by: Ryan Bogan <[email protected]>

* Fix spotless

Signed-off-by: Ryan Bogan <[email protected]>

* Update model index mappings

Signed-off-by: Ryan Bogan <[email protected]>

* Change field mapper to read model version

Signed-off-by: Ryan Bogan <[email protected]>

* Fix tests

Signed-off-by: Ryan Bogan <[email protected]>

* remove println

Signed-off-by: John Mazanec <[email protected]>

---------

Signed-off-by: Ryan Bogan <[email protected]>
Signed-off-by: John Mazanec <[email protected]>
Co-authored-by: John Mazanec <[email protected]>
(cherry picked from commit 6814c8f)

* Fix tests

Signed-off-by: Ryan Bogan <[email protected]>

---------

Signed-off-by: Ryan Bogan <[email protected]>
akashsha1 pushed a commit to akashsha1/k-NN that referenced this pull request Sep 16, 2024
…o be from cluster metadata (opensearch-project#2005)

* Add model version to model metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add model version to model metadata and change model metadata reads to be from cluster metadata

Signed-off-by: Ryan Bogan <[email protected]>

* Add changelog entry

Signed-off-by: Ryan Bogan <[email protected]>

* Set version from config context

Signed-off-by: Ryan Bogan <[email protected]>

* Fix spotless

Signed-off-by: Ryan Bogan <[email protected]>

* Update model index mappings

Signed-off-by: Ryan Bogan <[email protected]>

* Change field mapper to read model version

Signed-off-by: Ryan Bogan <[email protected]>

* Fix tests

Signed-off-by: Ryan Bogan <[email protected]>

* remove println

Signed-off-by: John Mazanec <[email protected]>

---------

Signed-off-by: Ryan Bogan <[email protected]>
Signed-off-by: John Mazanec <[email protected]>
Co-authored-by: John Mazanec <[email protected]>
Signed-off-by: Akash Shankaran <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants