Memoize MergeRequest#rebase_in_progress? to prevent N+1 queries in Gitaly
MergeRequest#rebase_in_progress? and MergeRequest#rebase_path were called twice each time per request. This memoization helps reduce the overall number of queries. See https://gitlab.com/gitlab-org/gitlab-ee/-/jobs/51616319 as a failing job. Closes gitlab-org/gitlab-ee#4857
This commit is contained in:
parent
828357fb82
commit
9a323c7e1f
|
@ -158,10 +158,12 @@ class MergeRequest < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def rebase_in_progress?
|
||||
# The source project can be deleted
|
||||
return false unless source_project
|
||||
strong_memoize(:rebase_in_progress) do
|
||||
# The source project can be deleted
|
||||
next false unless source_project
|
||||
|
||||
source_project.repository.rebase_in_progress?(id)
|
||||
source_project.repository.rebase_in_progress?(id)
|
||||
end
|
||||
end
|
||||
|
||||
# Use this method whenever you need to make sure the head_pipeline is synced with the
|
||||
|
|
Loading…
Reference in New Issue