-
- Downloads
Cache the number of forks of a project
The number of forks of a project doesn't change very frequently and running a COUNT(*) every time this information is requested can be quite expensive. We also end up running such a COUNT(*) query at least twice on the homepage of a project. By caching this data and refreshing it when necessary we can reduce project homepage loading times by around 60 milliseconds (based on the timings of https://gitlab.com/gitlab-org/gitlab-ce).
Showing
- app/models/project.rb 4 additions, 1 deletionapp/models/project.rb
- app/services/projects/destroy_service.rb 2 additions, 0 deletionsapp/services/projects/destroy_service.rb
- app/services/projects/fork_service.rb 6 additions, 0 deletionsapp/services/projects/fork_service.rb
- app/services/projects/forks_count_service.rb 30 additions, 0 deletionsapp/services/projects/forks_count_service.rb
- app/services/projects/unlink_fork_service.rb 6 additions, 0 deletionsapp/services/projects/unlink_fork_service.rb
- changelogs/unreleased/forks-count-cache.yml 5 additions, 0 deletionschangelogs/unreleased/forks-count-cache.yml
- lib/api/projects.rb 2 additions, 0 deletionslib/api/projects.rb
- lib/api/v3/projects.rb 2 additions, 0 deletionslib/api/v3/projects.rb
- spec/models/project_spec.rb 10 additions, 0 deletionsspec/models/project_spec.rb
- spec/requests/api/projects_spec.rb 8 additions, 0 deletionsspec/requests/api/projects_spec.rb
- spec/requests/api/v3/projects_spec.rb 8 additions, 0 deletionsspec/requests/api/v3/projects_spec.rb
- spec/services/projects/fork_service_spec.rb 8 additions, 0 deletionsspec/services/projects/fork_service_spec.rb
- spec/services/projects/forks_count_service_spec.rb 40 additions, 0 deletionsspec/services/projects/forks_count_service_spec.rb
- spec/services/projects/unlink_fork_service_spec.rb 10 additions, 0 deletionsspec/services/projects/unlink_fork_service_spec.rb
app/services/projects/forks_count_service.rb
0 → 100644
changelogs/unreleased/forks-count-cache.yml
0 → 100644
Please register or sign in to comment