- 21 3月, 2018 1 次提交
-
-
由 Andreas Brandl 提交于
Closes #44446.
-
- 16 3月, 2018 3 次提交
-
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
-
- 10 3月, 2018 1 次提交
-
-
由 Greg Stark 提交于
-
- 09 3月, 2018 1 次提交
-
-
由 Jan Provaznik 提交于
We still have >100K unmigrated MergeRequestDiffs which don't have commits_count set yet (see https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17567#note_61904891) This migration re-schedules the original background migration. To assure that records are not processed twice, records with commits_count set are skipped. Related to #41698 and !17567
-
- 08 3月, 2018 4 次提交
-
-
由 Stan Hu 提交于
This was causing user deletions to time out. Closes #44008
-
由 Stan Hu 提交于
API requests were timing out because `tag_id` was missing an index. These migrations were imported by running https://github.com/mbleigh/acts-as-taggable-on#post-installation: ``` bundle exec rake acts_as_taggable_on_engine:install:migrations ``` It looks like the `acts-as-tagglable` gem added the indexes in v4.0.0, but when we upgraded from v3.5.0 (back in 2016 via f571aeb5) we did not add them. On staging, there are about 10.7 million rows on the `taggings` table. It took about 30 seconds for each index to be created. On production, there are about 17.4 million rows, so I suspect the time to be about a minute per index. Closes #43927
-
由 Mayra Cabrera 提交于
-
由 Mayra Cabrera 提交于
Closes #43802
-
- 07 3月, 2018 2 次提交
-
-
由 Bob Van Landuyt 提交于
This flag will allow maintainers of a project to push to specific branches of a fork of a project
-
由 Shinya Maeda 提交于
-
- 06 3月, 2018 9 次提交
-
-
由 Shinya Maeda 提交于
Integrate two workers into one ArchiveTraceWorker with pipeline_background queue. This queue takes loqer precedence than pipeline_default.
-
由 Andreas Brandl 提交于
This is to avoid a mix-up with the existing concept of 'user contributions'. See `User#contributed_projects` or `Event#contributions`.
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
-
由 Mayra Cabrera 提交于
-
由 Shinya Maeda 提交于
-
由 Shinya Maeda 提交于
-
由 Shinya Maeda 提交于
-
由 Francisco Javier López 提交于
-
- 05 3月, 2018 1 次提交
-
-
由 Jan Provaznik 提交于
* processes any pending records which are not migrated yet * bumps import_export version because of new commits_count attribute * removes commits_count fallback method
-
- 03 3月, 2018 1 次提交
-
-
由 Felipe Artur 提交于
-
- 02 3月, 2018 1 次提交
-
-
由 Mayra Cabrera 提交于
-
- 01 3月, 2018 1 次提交
-
-
由 Dmitriy Zaporozhets 提交于
Signed-off-by: NDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-
- 28 2月, 2018 1 次提交
-
-
由 Dylan Griffith 提交于
-
- 23 2月, 2018 2 次提交
-
-
由 Nick Thomas 提交于
-
由 Yorick Peterse 提交于
This optimises searching for users when using queries consisting out of one or two characters such as "ab". We optimise such cases by searching for `LOWER(name)` and `LOWER(username)` instead of using `ILIKE`. Using `LOWER` produces a _much_ better performing query. For example, when searching for all users matching the term "a" we'd produce the following plan: Limit (cost=637.69..637.74 rows=20 width=805) (actual time=41.983..41.995 rows=20 loops=1) Buffers: shared hit=8330 -> Sort (cost=637.69..638.61 rows=368 width=805) (actual time=41.982..41.990 rows=20 loops=1) Sort Key: (CASE WHEN ((name)::text = 'a'::text) THEN 0 WHEN ((username)::text = 'a'::text) THEN 1 WHEN ((email)::text = 'a'::text) THEN 2 ELSE 3 END), name Sort Method: top-N heapsort Memory: 35kB Buffers: shared hit=8330 -> Bitmap Heap Scan on users (cost=75.47..627.89 rows=368 width=805) (actual time=9.452..41.305 rows=277 loops=1) Recheck Cond: (((name)::text ~~* 'a'::text) OR ((username)::text ~~* 'a'::text) OR ((email)::text = 'a'::text)) Rows Removed by Index Recheck: 7601 Heap Blocks: exact=7636 Buffers: shared hit=8327 -> BitmapOr (cost=75.47..75.47 rows=368 width=0) (actual time=8.290..8.290 rows=0 loops=1) Buffers: shared hit=691 -> Bitmap Index Scan on index_users_on_name_trigram (cost=0.00..38.85 rows=180 width=0) (actual time=4.369..4.369 rows=4071 loops=1) Index Cond: ((name)::text ~~* 'a'::text) Buffers: shared hit=360 -> Bitmap Index Scan on index_users_on_username_trigram (cost=0.00..34.41 rows=188 width=0) (actual time=3.896..3.896 rows=4140 loops=1) Index Cond: ((username)::text ~~* 'a'::text) Buffers: shared hit=328 -> Bitmap Index Scan on users_email_key (cost=0.00..1.94 rows=1 width=0) (actual time=0.022..0.022 rows=0 loops=1) Index Cond: ((email)::text = 'a'::text) Buffers: shared hit=3 Planning time: 3.912 ms Execution time: 42.171 ms With the changes in this commit we now produce the following plan instead: Limit (cost=13257.48..13257.53 rows=20 width=805) (actual time=1.567..1.579 rows=20 loops=1) Buffers: shared hit=287 -> Sort (cost=13257.48..13280.93 rows=9379 width=805) (actual time=1.567..1.572 rows=20 loops=1) Sort Key: (CASE WHEN ((name)::text = 'a'::text) THEN 0 WHEN ((username)::text = 'a'::text) THEN 1 WHEN ((email)::text = 'a'::text) THEN 2 ELSE 3 END), name Sort Method: top-N heapsort Memory: 35kB Buffers: shared hit=287 -> Bitmap Heap Scan on users (cost=135.66..13007.91 rows=9379 width=805) (actual time=0.194..1.107 rows=277 loops=1) Recheck Cond: ((lower((name)::text) = 'a'::text) OR (lower((username)::text) = 'a'::text) OR ((email)::text = 'a'::text)) Heap Blocks: exact=277 Buffers: shared hit=287 -> BitmapOr (cost=135.66..135.66 rows=9379 width=0) (actual time=0.152..0.152 rows=0 loops=1) Buffers: shared hit=10 -> Bitmap Index Scan on yorick_test_users (cost=0.00..124.75 rows=9377 width=0) (actual time=0.101..0.101 rows=277 loops=1) Index Cond: (lower((name)::text) = 'a'::text) Buffers: shared hit=4 -> Bitmap Index Scan on index_on_users_lower_username (cost=0.00..1.94 rows=1 width=0) (actual time=0.035..0.035 rows=1 loops=1) Index Cond: (lower((username)::text) = 'a'::text) Buffers: shared hit=3 -> Bitmap Index Scan on users_email_key (cost=0.00..1.94 rows=1 width=0) (actual time=0.014..0.014 rows=0 loops=1) Index Cond: ((email)::text = 'a'::text) Buffers: shared hit=3 Planning time: 0.303 ms Execution time: 1.687 ms Here we can see the new query is 25 times faster compared to the old query.
-
- 20 2月, 2018 2 次提交
-
-
由 Grzegorz Bizon 提交于
-
由 Andreas Brandl 提交于
This helps with queries that get project ids based on the - comparably rare - visibility levels 10 and 20. For these, postgres can now leverage the partial index for a index-only scan to improve performance. Example queries: SELECT id FROM projects WHERE visibility_level IN (10,20) SELECT id FROM projects WHERE visibility_level IN (10) For MySQL, this results in a full index on id because MySQL omits the WHERE clause. That is, the index is a duplicate of the primary key basically.
-
- 17 2月, 2018 2 次提交
- 15 2月, 2018 1 次提交
-
-
由 Dylan Griffith 提交于
-
- 13 2月, 2018 1 次提交
-
-
由 Michael Kozono 提交于
To finish migrating untracked files to uploads for installations that were affected by https://gitlab.com/gitlab-org/gitlab-ce/issues/42881 Or just to delete the temp table if it is empty and left behind.
-
- 12 2月, 2018 1 次提交
-
-
由 Grzegorz Bizon 提交于
-
- 08 2月, 2018 1 次提交
-
-
由 Greg Stark 提交于
Artifacts are in the middle of being migrated from ci_builds to ci_job_artifacts. The expiration date is currently visible in both of these tables and the test for whether an expired artifact is present for a job is complex as it requires checking both the of the tables. Add two new indexes, one on ci_builds.artifacts_expire_at and one on ci_job_artifacts.expire_at to enable finding expired artifacts efficiently. And until the migration is finished, replace the SQL for finding expired and non-expired artifacts with a hand-crafted UNION ALL based query instead of using OR. This overcomes a database optimizer limitation that prevents it from using these indexes. When the migration is finished the next version should remove this query and replace it with a much simpler query on just ci_job_artifacts. See https://gitlab.com/gitlab-org/gitlab-ce/issues/42561 for followup.
-
- 07 2月, 2018 2 次提交
-
-
由 Rubén Dávila 提交于
-
由 Douwe Maan 提交于
-
- 06 2月, 2018 1 次提交
-
-
由 Grzegorz Bizon 提交于
-
- 05 2月, 2018 1 次提交
-
-
由 Andreas Brandl 提交于
-