<div dir="ltr">Hi Elena,<div><br></div><div>This is great, I would love to see extensible support for arbitrary metrics.</div><div><br></div><div>On Tue, Apr 19, 2016 at 12:39 AM, Kristof Beyls <span dir="ltr"><<a href="mailto:Kristof.Beyls@arm.com" target="_blank">Kristof.Beyls@arm.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



<div style="word-wrap:break-word">
<div>Hi Elena,</div>
<div><br>
</div>
<div>Many thanks for working on this!</div>
<div><br>
</div>
<div>May I first suggest to convert the google document to email content? That may make it a little bit easier for more people to review. It also makes sure the content is archived on the llvm's mail servers.</div>
<div>I'll refrain from making detailed comments until the text is in email, so that comments remain close to the text they make a comment on.</div></div></blockquote><div><br></div><div>Unfortunately now Kristof started the ball. :)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">
<div><br>
</div>
<div>From a high-level point-of-view, a few thoughts I had on the custom metrics proposal:</div>
<div>* My understanding is that you suggest, to be able to add custom metrics, to change the database schema to something that resembles a key-value pair way of storing data more. Often, storing data in key-value pairs in a relational databases can
 slow down queries a lot, depending on how data typically gets queried. I think that for LNT usage, the schema you suggest may work well in practice. But I think you'll need to do query time measurements and web page load time measurements to compare the speed
 before and after your suggested schema change, on a database with as much real-world data as you can lay your hands on. Ideally, both for the sqlite and the postgres database engines.</div></div></blockquote><div><br></div><div>I agree with Kristof here.</div><div><br></div><div>LNT actually did previously use a very key-value centric model which was extensible, but was untenable as we scaled our server up to 10s of million records (for reference, the <a href="http://llvm.org">llvm.org</a> server currently has over 100 million samples). It was also very cumbersome to program reports against, given that we have little-to-no infrastructure for doing background processing of the data to transform it into a more efficient query representation. Given that it sounds like you have already implemented this (partially?) have you tried scaling up to a large data set?</div><div><br></div><div>One of the reasons for the current LNT design (where we instantiate tables in response to a configuration) was so that extensible metrics could be added directly to the underlying SQL schema. The idea was that a user/client would configure a particular set of metrics to be tracked when they create the server (hopefully with features to track new metrics later), and then we would create a corresponding schema that tracked each metric separately.</div><div><br></div><div>For true "arbitrarily extensible" data where it doesn't make sense to be present in all samples for a schema, then I envisioned that users would attach additional samples into a BLOB sample field (which could be JSON or MsgPack, etc.) and then build up infrastructure for doing richer (but slow) queries over that data.</div><div><br></div><div> - Daniel</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">
<div>* Quite a few users of LNT only use the server and webui, and use a different system to produce the test data in the json file format that can be submitted to the LNT server. Therefore, I think it's useful if you'd also describe how the JSON file
 structure would change for this proposal.</div>
<div><br>
</div>
<div>For the proposal to add test-suite parameters: I'm not sure I've understood the problem you're trying to solve well. Maybe an example of a more concrete use case could help demonstrate what the value is of having multiple sets of CFLAGS per test
 program in a single run?</div>
<div>It seems that you're working on a patch that adapts the Makefile structures in test-suite. Maybe it would be better to switch to using the new cmake+lit system to build and run the programs in the test-suite and fix the problem there?</div>
<div><br>
</div>
<div>Thanks,</div>
<div><br>
</div>
<div>Kristof</div><div><div class="h5">
<div><br>
</div>
<br>
<div>
<blockquote type="cite">
<div>On 18 Apr 2016, at 17:16, Elena Lepilkina <<a href="mailto:Elena.Lepilkina@synopsys.com" target="_blank">Elena.Lepilkina@synopsys.com</a>> wrote:</div>
<br>
<div>
<div style="font-family:Helvetica;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<span>Greetings everyone,<u></u><u></u></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<u></u> <u></u></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
We would like to improve LNT.<u></u><u></u></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<span>The following RFC describes two LNT enhancements:<u></u><u></u></span></div>
<ul type="disc" style="margin-bottom:0in;margin-top:0in">
<li class="MsoNormal" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
Custom (extensible) metrics<u></u><u></u></li><li class="MsoNormal" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
Test parameterization<u></u><u></u></li></ul>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<span> </span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
The main idea is in document<span> </span><a href="https://docs.google.com/document/d/1zWWfu_iBQhFaHo73mhqqcL6Z82thHNAoCxaY7BveSf4/edit?usp=sharing" style="color:purple;text-decoration:underline" target="_blank">https://docs.google.com/document/d/1zWWfu_iBQhFaHo73mhqqcL6Z82thHNAoCxaY7BveSf4/edit?usp=sharing</a>.<u></u><u></u></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<u></u> <u></u></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<span>Thanks,<u></u><u></u></span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
<span> </span></div>
<div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">
Elena.</div>
</div>
</div>
</blockquote>
</div>
<br>
</div></div></div>

</blockquote></div><br></div></div></div>