Improve performance of user profiles, finding groups, and finding projects
This MR improves the following:
* Rendering of profile pages and Atom feeds
* Finding groups (using GroupsFinder & friends)
* Finding projects (using ProjectsFinder & friends)
Initially this MR was intended to only improve rendering of Atom feeds, but over time other fixes were introduced as well as the same code was the cause of all these problems.
See merge request !1790
Award Emoji
This it first iteration of award emoji feature.
We have plan to extend emoji picker by the next release.
For now, you can add award by clicking to the emoji picker or posting a regular comment with emoji like "👍" and any other. You can post not only emoji that listed in the emoji picker.
See merge request !1825
- Offloads uploading to GitLab Workhorse
- Use /authorize request for fast uploading
- Added backup recipes for artifacts
- Support download acceleration using X-Sendfile
Enable shared runners for all new projects
This adds Admin Setting option to enable shared runners for all new projects, and by default it is set to true.
/cc @dzaporozhets @sytses
See merge request !1738
This adds indexes for the following columns:
* notes.line_code
* ci_projects.gitlab_id
* ci_projects.shared_runners_enabled
* ci_builds.type
* ci_builds.status
Performance is improved in two steps:
1. On PostgreSQL an expression index is used for checking lower(email)
and lower(username).
2. The check to determine if we're searching for a username or Email is
moved to Ruby. Thanks to @haynes for suggesting and writing the
initial implementation of this.
Moving the check to Ruby makes this method an additional 1.5 times
faster compared to doing the check in the SQL query.
With performance being improved I've now also tweaked the amount of
iterations required by the User.by_login benchmark. This method now runs
between 900 and 1000 iterations per second.
Fixes GDK issue where repos would not be imported properly
Seed-Fu runs this entire fixture in a transaction, so the `after_commit`
hook won't run until after the fixture is loaded. That is too late
since the Sidekiq::Testing block has already exited. Force clearing
the `after_commit` queue to ensure the job is run now.
See: gitlab-org/gitlab-development-kit#58
See merge request !1513
By using a JOIN we can remove the need for using 2 separate queries to
find a project by its namespace. Combined with an index (only needed for
PostgreSQL) this reduces the query time from ~245 ms (~520 ms for the
first call) down to roughly 10 ms (~15 ms for the first call).
Seed-Fu runs this entire fixture in a transaction, so the `after_commit`
hook won't run until after the fixture is loaded. That is too late
since the Sidekiq::Testing block has already exited. Force clearing
the `after_commit` queue to ensure the job is run now.
See: gitlab-org/gitlab-development-kit#58
- It delegates name, path, gitlab_url, ssh_url_to_repo
- Remove ability to set this parameters using CI API
This fixes GitLab project rename, namespace change, repository rename, etc.