<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/app/finders/issues_finder.rb, branch remove-commit-tree</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>Add my_reaction_emoji param to /issues API</title>
<updated>2017-09-05T02:56:17+00:00</updated>
<author>
<name>Hiroyuki Sato</name>
<email>sathiroyuki@gmail.com</email>
</author>
<published>2017-09-03T07:34:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=cf9c54bd312dcb7b4b7f0602e83013d8d32a9413'/>
<id>cf9c54bd312dcb7b4b7f0602e83013d8d32a9413</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove issuable finder count caching</title>
<updated>2017-08-31T11:21:39+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-08-31T11:21:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=e7817fc1e0877efd59f0442934bbb0ad91fbb20a'/>
<id>e7817fc1e0877efd59f0442934bbb0ad91fbb20a</id>
<content type='text'>
We're going to cache the total open count separately, and then just perform
these counts on the list. We already do that to get the pagination information,
through Kaminari, and a future change will make Kaminari reuse the query results
from earlier in the request.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We're going to cache the total open count separately, and then just perform
these counts on the list. We already do that to get the pagination information,
through Kaminari, and a future change will make Kaminari reuse the query results
from earlier in the request.
</pre>
</div>
</content>
</entry>
<entry>
<title>Clear issuable counter caches on update</title>
<updated>2017-07-19T09:21:20+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-07-11T16:12:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=0e488ef70ab2608847423201e957693745f1e3b1'/>
<id>0e488ef70ab2608847423201e957693745f1e3b1</id>
<content type='text'>
When an issuable's state changes, or one is created, we should clear the cache
counts for a user's assigned issuables, and also the project-wide caches for
this user type.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When an issuable's state changes, or one is created, we should clear the cache
counts for a user's assigned issuables, and also the project-wide caches for
this user type.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix issuable state counter cache keys</title>
<updated>2017-07-19T09:21:18+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-07-11T12:19:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=c57ae83dcfaeff9c358b5f896202e04a86ad6ef3'/>
<id>c57ae83dcfaeff9c358b5f896202e04a86ad6ef3</id>
<content type='text'>
These cache a hash of counts by state, so the state isn't needed in the key
itself.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These cache a hash of counts by state, so the state isn't needed in the key
itself.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typo in IssuesFinder comment</title>
<updated>2017-06-30T14:44:21+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-06-30T14:44:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=4e38985b1cc159c4e1582ab34c29d7ec151aef35'/>
<id>4e38985b1cc159c4e1582ab34c29d7ec151aef35</id>
<content type='text'>
[ci skip]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ci skip]
</pre>
</div>
</content>
</entry>
<entry>
<title>Clarify counter caching for users without project access</title>
<updated>2017-06-30T09:33:47+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-06-29T16:15:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=cb30edfae5c3557686463ca22eca7ef572c3ac33'/>
<id>cb30edfae5c3557686463ca22eca7ef572c3ac33</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make finders responsible for counter cache keys</title>
<updated>2017-06-30T09:33:46+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-06-29T11:43:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=0c6cdd07829668e04012219eb21cc60db8c1eabc'/>
<id>0c6cdd07829668e04012219eb21cc60db8c1eabc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't count any confidential issues for non-project-members</title>
<updated>2017-06-30T09:33:45+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-06-23T11:50:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=c400030d0f51c71f32990ab0ecfebfa245ed663e'/>
<id>c400030d0f51c71f32990ab0ecfebfa245ed663e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache total issue / MR counts for project by user type</title>
<updated>2017-06-30T09:33:44+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-06-22T19:58:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=20bb678d91715817f3da04c7a1b73db84295accd'/>
<id>20bb678d91715817f3da04c7a1b73db84295accd</id>
<content type='text'>
This runs a slightly slower query to get the issue and MR counts in the
navigation, but caches by user type (can see all / none confidential issues) for
two minutes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This runs a slightly slower query to get the issue and MR counts in the
navigation, but caches by user type (can see all / none confidential issues) for
two minutes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Only do complicated confidentiality checks when necessary</title>
<updated>2017-06-30T09:33:44+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2017-06-20T15:38:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=42ccb5981a8425216f9d69372754c52510f0cade'/>
<id>42ccb5981a8425216f9d69372754c52510f0cade</id>
<content type='text'>
When we are filtering by a single project, and the current user has access to
see confidential issues on that project, we don't need to filter by
confidentiality at all - just as if the user were an admin.

The filter by confidentiality often picks a non-optimal query plan: for
instance, AND-ing the results of all issues in the project (a relatively small
set), and all issues in the states requested (a huge set), rather than just
starting small and winnowing further.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we are filtering by a single project, and the current user has access to
see confidential issues on that project, we don't need to filter by
confidentiality at all - just as if the user were an admin.

The filter by confidentiality often picks a non-optimal query plan: for
instance, AND-ing the results of all issues in the project (a relatively small
set), and all issues in the states requested (a huge set), rather than just
starting small and winnowing further.
</pre>
</div>
</content>
</entry>
</feed>
