gitlab-org--gitlab-foss/spec/models
Zeger-Jan van de Weg 3ab026b7d6
Use memoization for commits on diffs
The Gitaly CommitService is being hammered by n + 1 calls, mostly when
finding commits. This leads to this gRPC being turned of on production:
https://gitlab.com/gitlab-org/gitaly/issues/514#note_48991378

Hunting down where it came from, most of them were due to
MergeRequest#show. To prove this, I set a script to request the
MergeRequest#show page 50 times. The GDK was being scraped by
Prometheus, where we have metrics on controller#action and their Gitaly
calls performed. On both occations I've restarted the full GDK so all
caches had to be rebuild.

Current master, 806a68a81f, needed 435 requests
After this commit, 154 requests
2017-12-12 16:28:26 +01:00
..
blob_viewer Replaces 'WikiPage::CreateService' calls with 'wiki_page' factory 2017-10-13 14:42:52 +02:00
ci Test for both ci_disable_validates_dependencies true/false 2017-12-08 02:21:16 +09:00
clusters Merge branch 'master' into list-multiple-clusters 2017-12-04 09:50:25 +00:00
concerns Throttle the number of UPDATEs triggered by touch 2017-12-06 15:59:37 +01:00
conversational_development_index Store & use ConvDev percentages returned by Version app 2017-08-07 20:52:08 +02:00
cycle_analytics
diff_viewer Batchload blobs for diff generation 2017-11-21 13:53:26 +01:00
hooks Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
issue Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
members Migrate events into a new format 2017-08-10 17:45:44 +02:00
merge_request
network
project_services Fix unit tests 2017-11-28 20:47:59 +09:00
protected_branch
ability_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
abuse_report_spec.rb Optimize a few simple spec files by using set 2017-09-13 13:35:18 +02:00
appearance_spec.rb Add custom brand text on new project pages 2017-12-04 17:22:59 +01:00
application_setting_spec.rb Move the circuitbreaker check out in a separate process 2017-12-08 09:11:39 +01:00
award_emoji_spec.rb
blob_spec.rb Batchload blobs for diff generation 2017-11-21 13:53:26 +01:00
board_spec.rb
broadcast_message_spec.rb Fix caching of future broadcast messages 2017-08-21 17:58:37 +02:00
chat_name_spec.rb Optimize a few simple spec files by using set 2017-09-13 13:35:18 +02:00
chat_team_spec.rb Optimize a few simple spec files by using set 2017-09-13 13:35:18 +02:00
commit_collection_spec.rb Optimise getting the pipeline status of commits 2017-11-16 16:01:14 +01:00
commit_range_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
commit_spec.rb Optimise getting the pipeline status of commits 2017-11-16 16:01:14 +01:00
commit_status_spec.rb Use existing pipeline stage if stage already exists 2017-11-06 11:04:09 +01:00
compare_spec.rb
container_repository_spec.rb Prevent new / renamed project from using a repository path that already exists on disk 2017-08-25 20:06:06 +02:00
deploy_key_spec.rb Don't include EmailHelpers manually, pick with rspec 2017-08-03 21:55:48 +08:00
deploy_keys_project_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
deployment_spec.rb
diff_discussion_spec.rb
diff_note_spec.rb adding view and feature specs 2017-12-07 09:06:59 -05:00
discussion_spec.rb
email_spec.rb remove extra whitespace 2017-10-27 17:35:40 +02:00
environment_spec.rb Aling shared_exmaples to "same behavior between KubernetesService and Platform::Kubernetes" 2017-11-28 20:47:59 +09:00
event_collection_spec.rb Use a specialized class for querying events 2017-08-10 17:45:49 +02:00
event_spec.rb Finish migration to the new events setup 2017-09-06 16:40:31 +02:00
external_issue_spec.rb
fork_network_member_spec.rb Delete the fork network when removing the last membership 2017-11-17 12:58:15 +01:00
fork_network_spec.rb Unlink a project from a fork network when it's source was deleted. 2017-11-03 12:17:59 +01:00
forked_project_link_spec.rb Add a project forks spec helper 2017-10-07 11:46:23 +02:00
generic_commit_status_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
global_milestone_spec.rb Move total time spend calculation to milestoneish 2017-11-11 16:47:39 +02:00
gpg_key_spec.rb Invalidate GpgSignatures associated to GpgKeySubkeys when revoking the GpgKey 2017-10-05 08:26:02 -05:00
gpg_key_subkey_spec.rb Add some basic specs and refactor model and validations 2017-10-05 08:25:27 -05:00
gpg_signature_spec.rb Fix error with GPG signature updater when commit was deleted 2017-10-07 10:47:53 -05:00
group_custom_attribute_spec.rb Support custom attributes on groups 2017-11-06 10:51:50 +01:00
group_label_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
group_milestone_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
group_spec.rb Always return full avatar URL for private/internal groups/projects when asset host is set 2017-11-09 15:40:41 +00:00
guest_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
identity_spec.rb Changing OAuth lookup to be case insensitive 2017-11-17 14:24:25 +00:00
instance_configuration_spec.rb Added ssh fingerprint, gitlab ci and pages information in an instance configuration page 2017-10-25 23:51:26 +03:00
issue_collection_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
issue_spec.rb Throttle the number of UPDATEs triggered by touch 2017-12-06 15:59:37 +01:00
key_spec.rb Cache the number of user SSH keys 2017-11-16 14:59:38 +01:00
label_link_spec.rb
label_priority_spec.rb
label_spec.rb
legacy_diff_discussion_spec.rb
lfs_objects_project_spec.rb Fix syntax error in LFS objects specs 2017-09-13 13:35:18 +02:00
list_spec.rb
member_spec.rb Replaces tag: true into :tag in the specs 2017-10-07 13:57:54 +02:00
merge_request_diff_commit_spec.rb Handle large values on MergeRequestDiffCommit dates 2017-10-30 21:13:39 -03:00
merge_request_diff_file_spec.rb
merge_request_diff_spec.rb Remove serialised diff and commit columns 2017-11-28 16:13:40 +00:00
merge_request_spec.rb Use memoization for commits on diffs 2017-12-12 16:28:26 +01:00
milestone_spec.rb Changed validation error message on wrong milestone dates 2017-11-18 19:30:32 +01:00
namespace_spec.rb Allow git pull/push on project redirects 2017-12-08 17:42:43 +00:00
note_spec.rb Throttle the number of UPDATEs triggered by touch 2017-12-06 15:59:37 +01:00
notification_setting_spec.rb
pages_domain_spec.rb
personal_access_token_spec.rb Fix new personal access token showing up in a flash message 2017-12-07 16:22:37 -06:00
project_authorization_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
project_auto_devops_spec.rb Add specs for warning message shown in Auto DevOps settings 2017-09-19 18:42:13 +02:00
project_custom_attribute_spec.rb Support custom attributes on projects 2017-11-06 10:51:46 +01:00
project_feature_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
project_group_link_spec.rb Replaces tag: true into :tag in the specs 2017-10-07 13:57:54 +02:00
project_label_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
project_snippet_spec.rb
project_spec.rb Remove Rugged::Repository#empty? 2017-12-07 15:33:30 +00:00
project_statistics_spec.rb Add coverage on legacy artifacts for Ci::Build 2017-12-03 12:04:49 +01:00
project_team_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
project_wiki_spec.rb Fix dumping hashed storage based repository 2017-11-15 15:20:36 +01:00
protectable_dropdown_spec.rb Whitelist or fix additional Gitlab/PublicSend cop violations 2017-08-14 12:14:11 -04:00
protected_branch_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
protected_tag_spec.rb
push_event_payload_spec.rb Migrate events into a new format 2017-08-10 17:45:44 +02:00
push_event_spec.rb Rework how recent push events are retrieved 2017-09-08 00:46:16 +02:00
redirect_route_spec.rb Fix conflicting redirect search 2017-08-08 10:30:07 -07:00
release_spec.rb
repository_spec.rb Move the circuitbreaker check out in a separate process 2017-12-08 09:11:39 +01:00
route_spec.rb Allow git pull/push on project redirects 2017-12-08 17:42:43 +00:00
sent_notification_spec.rb Don't show an "Unsubscribe" link in snippet comment notifications 2017-10-09 15:03:05 +02:00
service_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
snippet_blob_spec.rb
snippet_spec.rb Use fuzzy search with minimum length of 3 characters where appropriate 2017-11-27 11:29:40 +01:00
spam_log_spec.rb
subscription_spec.rb
system_note_metadata_spec.rb
timelog_spec.rb
todo_spec.rb
tree_spec.rb
trending_project_spec.rb Change all :empty_project to :project 2017-08-02 17:47:31 -04:00
upload_spec.rb
user_agent_detail_spec.rb
user_custom_attribute_spec.rb Support custom attributes on users 2017-09-28 16:49:42 +00:00
user_spec.rb Allow git pull/push on project redirects 2017-12-08 17:42:43 +00:00
wiki_directory_spec.rb
wiki_page_spec.rb Resolve "Performance issues when loading large number of wiki pages" 2017-11-17 11:48:32 +00:00