Adds modelCount and versionPath to Models index
What does this MR do and why?
Adds modelCount and versionPath to Models index
- Adds modelCount and versionPath to ModelsIndexComponent
- Also fixes a bogus test for N+1: additional requires were being hidden under 'not_exceed_query_count' without proper warmup, which would increase the number of queries in the control action
This is the backend counterpart to the frontend changes introduced in !135044 (merged) This branch contain both MRs combined: https://gitlab.com/gitlab-org/gitlab/-/tree/385061-ui-list-models-page-full?ref_type=heads
How to set up and validate locally
-
checkout the combined branch: https://gitlab.com/gitlab-org/gitlab/-/tree/385061-ui-list-models-page-full
-
on rails console enable the feature flag, and create a few models and model versions
Feature.enable("model_registry") p = Project.find_by(id: 20) # or whatever project you want to use for testing 3.times { |i| Ml::FindOrCreateModelService.new(p, "model_#{i}").execute } Ml::FindOrCreateModelVersionService.new(p, { model_name: "model_1", version: "1.0.0" }).execute 3.times { |i| Ml::FindOrCreateModelVersionService.new(p, { model_name: "model_2", version: "1.2.#{i}" }).execute }
-
Navigate to
/ml/models
Database
SELECT
COUNT(*)
FROM
"ml_models"
WHERE
"ml_models"."project_id" = 20
Aggregate (cost=1.34..1.35 rows=1 width=8) (actual time=0.201..0.202 rows=1 loops=1)
-> Index Only Scan using index_ml_models_on_project_id_and_name on ml_models (cost=0.28..1.33 rows=3 width=0) (actual time=0.192..0.194 rows=3 loops=1)
Index Cond: (project_id = 20)
Heap Fetches: 0
Planning Time: 2.848 ms
Execution Time: 0.241 ms
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #385061 (closed)
Edited by Eduardo Bonet