| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When querying the deployments of an environment the query Rails produces
will be along the lines of the following:
SELECT *
FROM deployments
WHERE environment_id = X
For queries such as this (or queries that use this as their base and add
more conditions) there is no meaningful index that can be used as long
as deployments.project_id is not part of a WHERE clause.
To work around this we change that "has_many :deployments" relation to
always add a "WHERE project_id = X" condition. This means that queries
filtering deployments can make better use of the existing indexes. For
example, when filtering by deployments.iid this will result in the
following query:
SELECT *
FROM deployments
WHERE environment_id = X
AND project_id = Y
AND iid = Z
This means PostgreSQL can use the existing index on
(project_id, environment_id, iid) instead of having to use a different
index (or none at all) and having to scan over a large amount of data.
Query plan wise this means that instead of this query and plan:
EXPLAIN (BUFFERS, ANALYZE)
SELECT deployments.*
FROM deployments
WHERE deployments.environment_id = 5
AND deployments.iid = 225;
Index Scan using index_deployments_on_project_id_and_iid on deployments (cost=0.42..14465.75 rows=1 width=117) (actual time=6.394..38.048 rows=1 loops=1)
Index Cond: (iid = 225)
Filter: (environment_id = 5)
Rows Removed by Filter: 839
Buffers: shared hit=4534
Planning time: 0.076 ms
Execution time: 38.073 ms
We produce the following query and plan:
EXPLAIN (BUFFERS, ANALYZE)
SELECT deployments.*
FROM deployments
WHERE deployments.environment_id = 5
AND deployments.iid = 225
AND deployments.project_id = 1292351;
Index Scan using index_deployments_on_project_id_and_iid on deployments (cost=0.42..4.45 rows=1 width=117) (actual time=0.018..0.018 rows=1 loops=1)
Index Cond: ((project_id = 1292351) AND (iid = 225))
Filter: (environment_id = 5)
Buffers: shared hit=4
Planning time: 0.088 ms
Execution time: 0.039 ms
On GitLab.com these changes result in a (roughly) 11x improvement in SQL
timings for the CI environment status endpoint.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/36877
|
|\
| |
| |
| |
| |
| |
| | |
AutoDevOps banner hidden on explicit CI config
Closes #37652
See merge request !14207
|
| |
| |
| |
| |
| |
| |
| | |
Extends the helper method to no show the banner as soon as the project
has a `.gitlab-ci.yml` file on the default branch.
Fixes gitlab-org/gitlab-ce#37652
|
| | |
|
|\ \
| |/
|/|
| |
| | |
Replace the 'profile/active_tab.feature' spinach test with an rspec analog
See merge request !14239
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
'37629-lazy-image-loading-breaks-notification-mails-for-an-added-screenshot' into 'master'
Resolve "Lazy image loading breaks notification mails for an added screenshot"
Closes #37629
See merge request !14161
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Allow all AutoDevOps banners to be disabled
Closes #37653
See merge request !14218
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Given the default in the development and production environment is
false, the negation of enabling is used in the flag to signal you'd turn
it off. It reads a bit awkward, but makes us have a migration less.
Fixes gitlab-org/gitlab-ce#37653
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Add usage ping for Auto DevOps
Closes #37648
See merge request !14162
|
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes gitlab-org/gitlab-ce#37648
|
| | | | | |
|
|\ \ \ \ \
| |_|_|_|/
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Resolve "Move `lib/ci` to `lib/gitlab/ci`"
Closes #5836
See merge request !14078
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
fix CI
fix CI
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
Revert "Merge branch 'revert-f2421b2b' into 'master'"
See merge request !14190
|
| | | | |
| | | | |
| | | | | |
This reverts merge request !14148
|
| | | | | |
|
| |_|_|/
|/| | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Detect orphaned repositories
See merge request !14204
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Allow to use same periods for housekeeping tasks
Closes #34981
See merge request !13711
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This enables skipping a lesser housekeeping task
(incremental or full repack) by consistently
scheduling a higher task (respectively full repack or gc)
with the same period.
Cf. #34981
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Replace the 'project/issues/award_emoji.feature' spinach test with an rspec analog
See merge request !14202
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
analog
|
|\ \ \ \ \ \ \
| |_|_|_|_|_|/
|/| | | | | |
| | | | | | |
| | | | | | | |
Replace the 'project/builds/summary.feature' spinach test with an rspec analog
See merge request !14177
|
| |/ / / / / |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Eager load namespace owners for project dashboards
Closes #27376
See merge request !14188
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | | |
This solves an N+1 query problem where we'd run multiple queries when
getting the namespace owners of the displayed projects.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Add GitLab-Pages version to Admin Dashboard
Closes #36953
See merge request !14040
|
| | |_|_|_|/
| |/| | | | |
|
|\ \ \ \ \ \
| |_|_|/ / /
|/| | | | |
| | | | | |
| | | | | | |
Hide read_registry scope when registry is disabled on instance
See merge request !13314
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Replace the 'project/merge_requests/revert.feature' spinach test with an rspec analog
See merge request !14201
|
| | |_|_|/ /
| |/| | | |
| | | | | |
| | | | | | |
rspec analog
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | | |
Replace the 'project/milestone.feature' spinach test with an rspec analog
See merge request !14171
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | |
| | | | | |
| | | | | | |
Replace the 'project/merge_requests/accept.feature' spinach test with an rspec analog
See merge request !14176
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
rspec analog
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Replace 'project/wiki.feature' spinach test with an rspec analog
See merge request !13856
|
| |/ / / / |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Replace 'project/group_links.feature' spinach test with an rspec analog
See merge request !14169
|
| |/ / / / |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Replace the 'profile/emails.feature' spinach test with an rspec analog
See merge request !14172
|