- 13 Apr, 2016 1 commit
-
-
P.S.V.R authored
-
- 12 Apr, 2016 1 commit
-
-
Stan Hu authored
-
- 07 Apr, 2016 3 commits
-
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
- 01 Apr, 2016 2 commits
-
-
James Lopez authored
-
Yorick Peterse authored
Rails' "url_helpers" method creates an anonymous Module (which a bunch of methods) on every call. By caching the output of this method in a dedicated method we can shave off about 10 seconds of loading time for an issue with around 200 comments.
-
- 31 Mar, 2016 1 commit
-
-
Zeger-Jan van de Weg authored
-
- 30 Mar, 2016 1 commit
-
-
Dmitriy Zaporozhets authored
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-
- 23 Mar, 2016 1 commit
-
-
Lin Jen-Shin authored
-
- 22 Mar, 2016 2 commits
-
-
James Lopez authored
-
Baldinof authored
-
- 21 Mar, 2016 6 commits
-
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
James Lopez authored
-
- 20 Mar, 2016 4 commits
-
-
Douwe Maan authored
-
Douwe Maan authored
-
Douwe Maan authored
-
Douwe Maan authored
-
- 19 Mar, 2016 2 commits
-
-
Yorick Peterse authored
This caches the output of Repository#exists? in Redis while making sure it's flushed properly when creating new repositories, deleting them, etc. For the ProjectWiki tests to work I had to make ProjectWiki#create_repo! public as testing private methods in RSpec is a bit of a pain.
-
Felipe Artur authored
-
- 18 Mar, 2016 1 commit
-
-
Zeger-Jan van de Weg authored
-
- 17 Mar, 2016 1 commit
-
-
Yorick Peterse authored
The avatar logic has been moved from Project to Repository as this makes caching easier. The logic itself in turn has been changed so that the logo file names are cached in Redis. This cache is flushed upon pushing a commit but _only_ if: 1. The commit was pushed to the default branch 2. The commit actually changes any of the logo files If no branch or commit is given the cache is flushed anyway, this ensures that calling Repository#expire_cache without any arguments still flushes the avatar cache (e.g. this is used when removing a project). Fixes gitlab-org/gitlab-ce#14363
-
- 15 Mar, 2016 2 commits
-
-
Yorick Peterse authored
The queries that are UNION'd together don't need any eager loading (since we really only use the resulting SQL instead of having ActiveRecord actually run the queries). By dropping any eager loaded associations queries such as the following work instead of producing a SQL error: Project.all.includes(:namespace).search('foo')
-
Kamil Trzcinski authored
This solves the problem with caching the nil value with instance variable. Without this the every time we ask for external_issue_tracker we built AR and potentially do SQL query
-
- 13 Mar, 2016 1 commit
-
-
Zeger-Jan van de Weg authored
-
- 11 Mar, 2016 7 commits
-
-
Baldinof authored
-
Yorick Peterse authored
We can just use "arel_table" in these cases instead of "SomeClass.arel_table".
-
Yorick Peterse authored
Similar to the changes made to Project.search the method Project.search_by_title now also uses Arel so it can automatically use ILIKE/LIKE instead of the lower() function.
-
Yorick Peterse authored
This chance is broken up in two steps: 1. Use ILIKE on PostgreSQL and LIKE on MySQL, instead of using "WHERE lower(x) LIKE lower(y)" as ILIKE is significantly faster than using lower(). In many cases the use of lower() will force a slow sequence scan. 2. Instead of using 1 query that searches both projects and namespaces using a JOIN we're using 2 separate queries that are UNION'd together. Using a JOIN would force a slow sequence scan, using a UNION avoids this. This method now uses Arel as Arel automatically uses ILIKE on PostgreSQL and LIKE on MySQL, removing the need to handle this manually.
-
Dmitriy Zaporozhets authored
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-
Dmitriy Zaporozhets authored
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-
Dmitriy Zaporozhets authored
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-
- 10 Mar, 2016 3 commits
-
-
Yorick Peterse authored
The method Project#ci_services would load all services into memory (including _all_ their columns) and then use Enumerable#select to reduce the list. Project#ci_service in turn would further reduce this list down to just 1 Service instance. Instead of doing all this in Ruby we can just offload the work to the database, reducing the amount of time spent in these methods. These changes reduce the time of the first call to Project#ci_services from around 240 ms to around 10 ms, though the final timings will vary based on database load. Because Project#ci_service is memoized there's no further overhead introduced by using a database query. Fixes gitlab-org/gitlab-ce#14186
-
Felipe Artur authored
Prevent Groups to have smaller visibility than projects Add default_group_visibility_level to configuration Code improvements
-
Felipe Artur authored
-
- 09 Mar, 2016 1 commit
-
-
Douglas Barbosa Alexandre authored
-