<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/app/controllers/concerns, branch patch-53</title>
<subtitle>gitlab.com: gitlab-org/gitlab-ce.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/'/>
<entry>
<title>Remove "You are already signed in" banner</title>
<updated>2019-04-24T13:23:07+00:00</updated>
<author>
<name>Illya Klymov</name>
<email>xanf@xanf.me</email>
</author>
<published>2019-04-24T13:23:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=3eff85a97cee2a4143b80f97f750e02526aee1ab'/>
<id>3eff85a97cee2a4143b80f97f750e02526aee1ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move scoped_label into label presenter</title>
<updated>2019-04-23T19:58:20+00:00</updated>
<author>
<name>Jan Provaznik</name>
<email>jprovaznik@gitlab.com</email>
</author>
<published>2019-04-23T19:58:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=8ce4b6093a2e64f21928dded6c58950f180d8c2a'/>
<id>8ce4b6093a2e64f21928dded6c58950f180d8c2a</id>
<content type='text'>
When rendering a label we want to check 'scoped_label' feature
availability on a project/group where label is being used. For
this reason a label presenter is used in UI and information about
context project/group is passed to this presenter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When rendering a label we want to check 'scoped_label' feature
availability on a project/group where label is being used. For
this reason a label presenter is used in UI and information about
context project/group is passed to this presenter.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move Contribution Analytics related spec in spec/features/groups/group_page_with_external_authorization_service_spec to EE</title>
<updated>2019-04-09T15:38:58+00:00</updated>
<author>
<name>Imre Farkas</name>
<email>ifarkas@gitlab.com</email>
</author>
<published>2019-04-09T15:38:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=9bc5ed14fe97fe63cd5be30c013c6af978715621'/>
<id>9bc5ed14fe97fe63cd5be30c013c6af978715621</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[CE] Support multiple assignees for merge requests</title>
<updated>2019-04-08T21:40:00+00:00</updated>
<author>
<name>Oswaldo Ferreira</name>
<email>oswaldo@gitlab.com</email>
</author>
<published>2019-04-07T18:35:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=ca884980ee8e6fe1269f5abdb803519d51aa09c0'/>
<id>ca884980ee8e6fe1269f5abdb803519d51aa09c0</id>
<content type='text'>
Backports https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/10161
(code out of ee/ folder).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backports https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/10161
(code out of ee/ folder).
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Merge branch 'if-57131-external_auth_to_ce' into 'master'"</title>
<updated>2019-04-05T13:02:56+00:00</updated>
<author>
<name>Andreas Brandl</name>
<email>abrandl@gitlab.com</email>
</author>
<published>2019-04-05T13:02:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=46b1b9c1d61c269588bd3cd4203420608ddd7f0b'/>
<id>46b1b9c1d61c269588bd3cd4203420608ddd7f0b</id>
<content type='text'>
This reverts merge request !26823</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts merge request !26823</pre>
</div>
</content>
</entry>
<entry>
<title>Move Contribution Analytics related spec in spec/features/groups/group_page_with_external_authorization_service_spec to EE</title>
<updated>2019-04-05T11:45:47+00:00</updated>
<author>
<name>Imre Farkas</name>
<email>ifarkas@gitlab.com</email>
</author>
<published>2019-04-05T11:45:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=d9d7237d2ebf101ca35ed8ba2740e7c7093437ea'/>
<id>d9d7237d2ebf101ca35ed8ba2740e7c7093437ea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'keyval-labels' into 'master'</title>
<updated>2019-04-05T10:28:19+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2019-04-05T10:28:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=934dabaf6da42db7197e07dc95cf88d34e847306'/>
<id>934dabaf6da42db7197e07dc95cf88d34e847306</id>
<content type='text'>
[CE] Add mutually exclusive labels

See merge request gitlab-org/gitlab-ce!26804</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[CE] Add mutually exclusive labels

See merge request gitlab-org/gitlab-ce!26804</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'extend-cte-optimisations-to-projects' into 'master'</title>
<updated>2019-04-05T08:49:13+00:00</updated>
<author>
<name>Dmitriy Zaporozhets</name>
<email>dmitriy.zaporozhets@gmail.com</email>
</author>
<published>2019-04-05T08:49:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=43713d976a93677f3c90f1f1e926bf7d519e02bf'/>
<id>43713d976a93677f3c90f1f1e926bf7d519e02bf</id>
<content type='text'>
Extend CTE search optimisation to projects

Closes #55170

See merge request gitlab-org/gitlab-ce!26908</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extend CTE search optimisation to projects

Closes #55170

See merge request gitlab-org/gitlab-ce!26908</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed test specs</title>
<updated>2019-04-04T13:08:34+00:00</updated>
<author>
<name>Oswaldo Ferreira</name>
<email>oswaldo@gitlab.com</email>
</author>
<published>2019-04-04T13:08:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=e540c0d71e00c4ce031b94cf11ec3de905e87da7'/>
<id>e540c0d71e00c4ce031b94cf11ec3de905e87da7</id>
<content type='text'>
- added suggestions to mock data
- fixed props to be not required
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- added suggestions to mock data
- fixed props to be not required
</pre>
</div>
</content>
</entry>
<entry>
<title>Extend CTE search optimisation to projects</title>
<updated>2019-04-04T11:36:22+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2019-04-03T09:46:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=10ceb33ba271f603fa09d4a4b5fdca03fd7ea333'/>
<id>10ceb33ba271f603fa09d4a4b5fdca03fd7ea333</id>
<content type='text'>
When we use the `search` param on an `IssuableFinder`, we can run into
issues. We have trigram indexes to support these searches. On
GitLab.com, we often see Postgres's optimiser prioritise the (global)
trigram indexes over the index on `project_id`. For group and project
searches, we know that it will be quicker to filter by `project_id`
first, as it returns fewer rows in most cases.

For group issues search, we ran into this issue previously, and went
through the following iterations:

1. Use a CTE on the project IDs as an optimisation fence. This prevents
   the planner from disregarding the index on `project_id`.
   Unfortunately it breaks some types of sorting, like priority and
   popularity, as they sort on a joined table.
2. Use a subquery for listing issues, and a CTE for counts. The subquery
   - in the case of group lists - didn't help as much as the CTE, but
   was faster than not including it. We can safely use a CTE for counts
   as they don't have sorting.

Now, however, we're seeing the same issue in a project context. The
subquery doesn't help at all there (it would only return one row, after
all). In an attempt to keep total code complexity under control, this
commit removes the subquery optimisation and applies the CTE
optimisation only for sorts we know that are safe.

This means that for more complicated sorts (like priority and
popularity), the search will continue to be very slow. If this is a
high-priority issue, we can consider introducing further optimisations,
but this finder is already very complicated and additional complexity
has a cost.

The group CTE optimisation is controlled by the same feature flag as
before, `attempt_group_search_optimizations`, which is enabled by
default. The new project CTE optimisation is controlled by a new feature
flag, `attempt_project_search_optimizations`, which is disabled by
default.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we use the `search` param on an `IssuableFinder`, we can run into
issues. We have trigram indexes to support these searches. On
GitLab.com, we often see Postgres's optimiser prioritise the (global)
trigram indexes over the index on `project_id`. For group and project
searches, we know that it will be quicker to filter by `project_id`
first, as it returns fewer rows in most cases.

For group issues search, we ran into this issue previously, and went
through the following iterations:

1. Use a CTE on the project IDs as an optimisation fence. This prevents
   the planner from disregarding the index on `project_id`.
   Unfortunately it breaks some types of sorting, like priority and
   popularity, as they sort on a joined table.
2. Use a subquery for listing issues, and a CTE for counts. The subquery
   - in the case of group lists - didn't help as much as the CTE, but
   was faster than not including it. We can safely use a CTE for counts
   as they don't have sorting.

Now, however, we're seeing the same issue in a project context. The
subquery doesn't help at all there (it would only return one row, after
all). In an attempt to keep total code complexity under control, this
commit removes the subquery optimisation and applies the CTE
optimisation only for sorts we know that are safe.

This means that for more complicated sorts (like priority and
popularity), the search will continue to be very slow. If this is a
high-priority issue, we can consider introducing further optimisations,
but this finder is already very complicated and additional complexity
has a cost.

The group CTE optimisation is controlled by the same feature flag as
before, `attempt_group_search_optimizations`, which is enabled by
default. The new project CTE optimisation is controlled by a new feature
flag, `attempt_project_search_optimizations`, which is disabled by
default.
</pre>
</div>
</content>
</entry>
</feed>
