<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/app/models/concerns, branch update-docs-spotbugs-java-11</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>Create an event on epic actions</title>
<updated>2019-09-03T21:29:55+00:00</updated>
<author>
<name>Jan Provaznik</name>
<email>jprovaznik@gitlab.com</email>
</author>
<published>2019-09-03T21:29:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=243bd0202fe3373a997f5ed37c027ab8cfdfcb35'/>
<id>243bd0202fe3373a997f5ed37c027ab8cfdfcb35</id>
<content type='text'>
Creates new event when an epic is created, closed, reopened or
commented.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Creates new event when an epic is created, closed, reopened or
commented.
</pre>
</div>
</content>
</entry>
<entry>
<title>Preload routes information</title>
<updated>2019-09-03T10:16:03+00:00</updated>
<author>
<name>Andreas Brandl</name>
<email>abrandl@gitlab.com</email>
</author>
<published>2019-08-27T17:15:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=53801b1206ff9e165b30117e3c3bcf543db7ad2c'/>
<id>53801b1206ff9e165b30117e3c3bcf543db7ad2c</id>
<content type='text'>
This fixes a high frequency N+1 issue:

`RoutableActions#find_routable!` is used across many controllers to
retrieve e.g. the Project or Namespace by path. The `#find_routable!`
method calls `#ensure_canonical_path` which in turn retrieves
`#full_path` from the given Routable.

This in turn triggers a lookup on `routes`, leading to a high frequency
of these queries:

```sql
SELECT  "routes".* FROM "routes" WHERE "routes"."source_id" = $1 AND
"routes"."source_type" = $2 LIMIT $3
```

This is unnecessary as we already join `routes` in
`Routable#find_by_full_path` anyways.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a high frequency N+1 issue:

`RoutableActions#find_routable!` is used across many controllers to
retrieve e.g. the Project or Namespace by path. The `#find_routable!`
method calls `#ensure_canonical_path` which in turn retrieves
`#full_path` from the given Routable.

This in turn triggers a lookup on `routes`, leading to a high frequency
of these queries:

```sql
SELECT  "routes".* FROM "routes" WHERE "routes"."source_id" = $1 AND
"routes"."source_type" = $2 LIMIT $3
```

This is unnecessary as we already join `routes` in
`Routable#find_by_full_path` anyways.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid calling freeze on already frozen strings in app/models</title>
<updated>2019-08-31T19:57:00+00:00</updated>
<author>
<name>dineshpanda</name>
<email>dineshpanda92@gmail.com</email>
</author>
<published>2019-08-31T19:57:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=20111b045d7df27223808b1e8eaa4861d4906863'/>
<id>20111b045d7df27223808b1e8eaa4861d4906863</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 'remove-ignorable-column-concern' into 'master'</title>
<updated>2019-08-30T21:59:31+00:00</updated>
<author>
<name>Michael Kozono</name>
<email>mkozono@gmail.com</email>
</author>
<published>2019-08-30T21:59:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=88c6423e4a45103cc480467bc8f412a48e1e0b55'/>
<id>88c6423e4a45103cc480467bc8f412a48e1e0b55</id>
<content type='text'>
Remove dependency on IgnorableColumn concern

Closes #66746

See merge request gitlab-org/gitlab-ce!32427</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove dependency on IgnorableColumn concern

Closes #66746

See merge request gitlab-org/gitlab-ce!32427</pre>
</div>
</content>
</entry>
<entry>
<title>Add another counter to calculate method call ratio</title>
<updated>2019-08-30T09:50:26+00:00</updated>
<author>
<name>Andreas Brandl</name>
<email>abrandl@gitlab.com</email>
</author>
<published>2019-08-30T09:50:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=edde1b708a6a605185a6dde73550b9f45e673371'/>
<id>edde1b708a6a605185a6dde73550b9f45e673371</id>
<content type='text'>
We should see the ratio drop down when enabling the Feature.

Recommendation by @andrewn
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We should see the ratio drop down when enabling the Feature.

Recommendation by @andrewn
</pre>
</div>
</content>
</entry>
<entry>
<title>Add method call count instrumentation</title>
<updated>2019-08-30T05:58:33+00:00</updated>
<author>
<name>Andreas Brandl</name>
<email>abrandl@gitlab.com</email>
</author>
<published>2019-08-29T11:51:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=1003cd92cbaf9df12bf01b85c16c8dabdb1a8b72'/>
<id>1003cd92cbaf9df12bf01b85c16c8dabdb1a8b72</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Perform two-step Routable lookup by path</title>
<updated>2019-08-30T05:58:33+00:00</updated>
<author>
<name>Andreas Brandl</name>
<email>abrandl@gitlab.com</email>
</author>
<published>2019-08-27T13:29:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=739d6a5ad3ac3756d89d6d07fec5fb876aa333d6'/>
<id>739d6a5ad3ac3756d89d6d07fec5fb876aa333d6</id>
<content type='text'>
In order to lookup a Project or Namespace by path, we prefer an exact
match (case-sensitive) but in absence of that, we'd also take a
case-insensitive match.

The case-insensitive matching with preference for the exact match is a
bit more involved in SQL as the exact lookup. Yet, the majority of cases
will be an exact match. The thinking here is that we can optimize the
lookup by performing an exact match first and only if there is no
result, we perform the case-insensitive lookup.

Data for GitLab.com:
* We have about 15M records in routes table
* About 2,500 routes exist where there's more than one record
  with the same `lower(path)`

It is possible for a user to craft requests that would always trigger
the 2-step search (e.g. we have a route for `/foo/bar`, the request is
always for `/FOO/bar`). In this case, the change at hand is not
beneficial as it would run an additional query.

However, based on the data, it is highly likely that the vast majority
of requests can be satisfied with an exact match only.

The context for this change is
https://gitlab.com/gitlab-org/gitlab-ce/issues/64590#note_208156463.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to lookup a Project or Namespace by path, we prefer an exact
match (case-sensitive) but in absence of that, we'd also take a
case-insensitive match.

The case-insensitive matching with preference for the exact match is a
bit more involved in SQL as the exact lookup. Yet, the majority of cases
will be an exact match. The thinking here is that we can optimize the
lookup by performing an exact match first and only if there is no
result, we perform the case-insensitive lookup.

Data for GitLab.com:
* We have about 15M records in routes table
* About 2,500 routes exist where there's more than one record
  with the same `lower(path)`

It is possible for a user to craft requests that would always trigger
the 2-step search (e.g. we have a route for `/foo/bar`, the request is
always for `/FOO/bar`). In this case, the change at hand is not
beneficial as it would run an additional query.

However, based on the data, it is highly likely that the vast majority
of requests can be satisfied with an exact match only.

The context for this change is
https://gitlab.com/gitlab-org/gitlab-ce/issues/64590#note_208156463.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq</title>
<updated>2019-08-29T22:17:37+00:00</updated>
<author>
<name>Robert Speicher</name>
<email>rspeicher@gmail.com</email>
</author>
<published>2019-08-29T22:17:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=7698d405506bc10dfd7fb2e6e02b419dd5925725'/>
<id>7698d405506bc10dfd7fb2e6e02b419dd5925725</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 'security-61974-limit-issue-comment-size' into 'master'</title>
<updated>2019-08-29T21:34:15+00:00</updated>
<author>
<name>GitLab Release Tools Bot</name>
<email>robert+release-tools@gitlab.com</email>
</author>
<published>2019-08-29T21:34:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=b01c7ad291a81bc23d2c3fe7266eaf05de6cb434'/>
<id>b01c7ad291a81bc23d2c3fe7266eaf05de6cb434</id>
<content type='text'>
Limit the size of issuable description and comments

See merge request gitlab/gitlabhq!3267</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Limit the size of issuable description and comments

See merge request gitlab/gitlabhq!3267</pre>
</div>
</content>
</entry>
<entry>
<title>Remove dependency on IgnorableColumn concern</title>
<updated>2019-08-29T20:39:13+00:00</updated>
<author>
<name>dineshpanda</name>
<email>dineshpanda92@gmail.com</email>
</author>
<published>2019-08-29T20:39:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=fa6f19d1f83b68f2bb729be889ab7d66adbbedb8'/>
<id>fa6f19d1f83b68f2bb729be889ab7d66adbbedb8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
