[Artifacts] Improve list artifact tags db query #5648
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When listing artifact tags, we first loaded all of the artifacts in the project to the API's memory, then iterated over them and looked for tags in their metadata.
This resulted with a major load on the API and in systems with a large number of artifacts, requests to
GET /artifact-tags
were stuck and timing out.To fix it, instead of loading the entire artifacts table then iterating over it, we use a simple join on the artifact tags table and query only the artifact key (needed for permission filtering) and the tag name.
This results with a much quicker query and simpler code.
Resolves https://iguazio.atlassian.net/browse/ML-6611