<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Luiz, this is great data. Please submit the index creation components to GitHub and we’ll add them to the MySQL side. I would imagine that indexes on client_id would probably help too.<div class=""><br class=""></div><div class="">&nbsp;— Justin</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 3, 2015, at 3:21 PM, Luiz Omori &lt;<a href="mailto:luiz.omori@duke.edu" class="">luiz.omori@duke.edu</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" class="">
<title class=""></title>

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class="">
<div class="">While investigating overall performance aspects on our production environment we found out a few things about MitreID:</div>
<ol class="">
<li class="">We recommend the following indexes to be added (at least for MySQL):
<ol class="">
<li class="">CREATE INDEX token_value_idx ON access_token(token_value(767));</li><li class="">CREATE INDEX owner_id_idx ON token_scope(owner_id);</li><li class="">CREATE INDEX expiration_idx ON access_token(expiration);</li><li class="">CREATE INDEX auth_holder_id1_idx ON refresh_token(auth_holder_id);</li></ol>
</li><li class="">RSASSASigner.sign is using quite a bit of CPU power. Just an observation, not sure if anything can be done. Using RSA 2048 key.</li></ol>
<div class="">The indexes themselves may improve performance by 10+%. See attached output from JMeter (<a href="http://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Report" class="">http://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Report</a>).
 Interesting that there is a high latency (1200+ ms) per call but the also high throughput (79 req/sec). I guess that’s why we have Queue Theory in CS, eh? :)</div>
<div class=""><br class="">
</div>
<div class="">We can maybe make those changes in Github however won’t be able to test all options, e.g. PostgreSQL. Note that there is a limitation in MySQL where it doesn’t handle index on large columns. As configured on my system, the max column length is 767 for
 indexes.</div>
<div class=""><br class="">
</div>
<div class="">We are using JMeter to create 100 requests/sec, repeated 50 times, running version 1.1.16 connected to MySQL, MySQL Enterprise Monitor for SQL analysis, and JVisualVM to profile the application. All components are running on my development (MacOS) system.
 The requests are using the Resource Owner flow.</div>
<div class=""><br class="">
</div>
<div class="">By the way MitreID doesn’t appear to be the source of our main performance concerns.</div>
<div class=""><br class="">
</div>
<div class="">Regards,</div>
<div class="">Luiz&nbsp;</div>
</div>

<span id="cid:AC603319C5F7864C8672371FF7AA8AF6@namprd05.prod.outlook.com">&lt;after.png&gt;</span><span id="cid:8D689CA0264A434DA847F2E9CA53788E@namprd05.prod.outlook.com">&lt;before.png&gt;</span><span id="cid:6F9EF1F6EB473140832D05D1B317B91C@namprd05.prod.outlook.com">&lt;Screen Shot 2015-09-03 at 3.20.31 PM.png&gt;</span>_______________________________________________<br class="">mitreid-connect mailing list<br class=""><a href="mailto:mitreid-connect@mit.edu" class="">mitreid-connect@mit.edu</a><br class="">http://mailman.mit.edu/mailman/listinfo/mitreid-connect<br class=""></div></blockquote></div><br class=""></div></body></html>