<p dir="ltr"><br>
On 18 Feb 2016 13:53, &quot;Bill Burke&quot; &lt;<a href="mailto:bburke@redhat.com">bburke@redhat.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On 2/18/2016 2:07 AM, Stian Thorgersen wrote:<br>
&gt;&gt;<br>
&gt;&gt; Having two many joins (fetching everything about a realm in one query) is probably going to be bad for performance, especially if there are loads of clients and roles. There can also be large difference between different vendors.<br>
&gt;&gt;<br>
&gt;&gt; Another thing in the future we should separate clients out into a separate store. There could be thousands of clients or even more. So they should be treated in a similar fashion to users. Does that have impact on how we improve/refactor/fix caching now?<br>
&gt;&gt;<br>
&gt;<br>
&gt; As I said before, OIDC logout queries *ALL* clients to obtain a list of valid redirects to compare against the redirect-uri passed to the logout endpoint.  That&#39;s about the only very frequent, non-adminstrative function that requires obtaining a list of all clients.  We also really need a way to figure out of a realm invalidation is the result of the realm being removed or just updated.  Otherwise, you&#39;ll be evicting thousands of clients and other realm related items every time a realm is updated.  Actually, maybe we&#39;re better off not evicting clients on a realm removal, and just registering invalidations for every client in the realm instead.</p>
<p dir="ltr">Why does OIDC logout need to list all clients? It used to just get the clients that had client sessions for the specific user session.</p>
<p dir="ltr">&gt;<br>
&gt;<br>
&gt; -- <br>
&gt; Bill Burke<br>
&gt; JBoss, a division of Red Hat<br>
&gt; <a href="http://bill.burkecentral.com">http://bill.burkecentral.com</a><br>
&gt;<br>
</p>