summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2017-02-24 11:14:07 -0800
committerStan Hu <stanhu@gmail.com>2017-02-24 11:15:25 -0800
commit71bf5c122d7f82cae59562ee3ac014aa3c3b1be7 (patch)
tree8a5dbc0ba93b7156eed3f855e31c8c99bc4cb0d1
parent679a742f6a37c7aea6fd47f35201124febb7aef0 (diff)
downloadgitlab-ce-sh-fix-events-load-perf-issue.tar.gz
Fix performance regression loading events in authorized projectssh-fix-events-load-perf-issue
!9088 removed the ActiveRecord instantiation, but it caused a subquery to be used that made PostgreSQL do more work than necessary to find events for authorized projects. Closes #27267
-rw-r--r--app/models/event.rb2
-rw-r--r--changelogs/unreleased/sh-fix-events-load-perf-issue.yml4
2 files changed, 5 insertions, 1 deletions
diff --git a/app/models/event.rb b/app/models/event.rb
index 4b8eac9accf..d7ca8e3c599 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -36,7 +36,7 @@ class Event < ActiveRecord::Base
scope :code_push, -> { where(action: PUSHED) }
scope :in_projects, ->(projects) do
- where(project_id: projects).recent
+ where(project_id: projects.pluck(:id)).recent
end
scope :with_associations, -> { includes(:author, :project, project: :namespace).preload(:target) }
diff --git a/changelogs/unreleased/sh-fix-events-load-perf-issue.yml b/changelogs/unreleased/sh-fix-events-load-perf-issue.yml
new file mode 100644
index 00000000000..7c1a5c6f916
--- /dev/null
+++ b/changelogs/unreleased/sh-fix-events-load-perf-issue.yml
@@ -0,0 +1,4 @@
+---
+title: Fix performance regression loading events in authorized projects
+merge_request:
+author: