19428e8008
When displaying the pipelines of a project we now preload the following data: 1. Authors of the commits that belong to these pipelines 2. The number of warnings per pipeline, which is used by Ci::Pipeline#has_warnings? == Commit Authors Previously this data was queried for every Commit separately, leading to 20 SQL queries being executed in the worst case. With an average of 3 to 5 milliseconds per SQL query this could result in 100 milliseconds being spent in _just_ getting Commit authors. To preload this data Commit#author now uses BatchLoader (through Commit#lazy_author), and a separate module Gitlab::Ci::Pipeline::Preloader is used to ensure all authors are loaded before they are used. == Number of warnings This changes Ci::Pipeline#has_warnings? so it supports preloading of the number of warnings per pipeline. This removes the need for executing a COUNT(*) query for every pipeline just to see if it has any warnings or not. |
||
---|---|---|
.. | ||
api | ||
assets | ||
backup | ||
banzai | ||
bitbucket | ||
constraints | ||
container_registry | ||
declarative_policy | ||
generators/rails/post_deployment_migration | ||
gitaly | ||
gitlab | ||
google_api | ||
haml_lint | ||
json_web_token | ||
mattermost | ||
microsoft_teams | ||
omni_auth/strategies | ||
peek | ||
rouge | ||
rspec_flaky | ||
support | ||
system_check | ||
tasks | ||
additional_email_headers_interceptor.rb | ||
after_commit_queue.rb | ||
banzai.rb | ||
carrier_wave_string_file.rb | ||
declarative_policy.rb | ||
disable_email_interceptor.rb | ||
email_template_interceptor.rb | ||
event_filter.rb | ||
expand_variables.rb | ||
extracts_path.rb | ||
feature.rb | ||
file_size_validator.rb | ||
forever.rb | ||
gitlab.rb | ||
gt_one_coercion.rb | ||
milestone_array.rb | ||
static_model.rb | ||
system_check.rb | ||
unfold_form.rb | ||
uploaded_file.rb | ||
version_check.rb |