The goal of the feature is to only store identical test output once. The same exact test output is submitted day after day after day after day by dashboard clients that run the same tests every day.<br><br><div>Perhaps sticking with crc32, but also using 'projectid' and testname as select criteria would be a better strategy than simply relying on the crc32 alone.<br>
<div><br></div><div><br><div class="gmail_quote">On Thu, Sep 3, 2009 at 11:31 AM, Amitha Perera <span dir="ltr"><<a href="mailto:amitha.perera@kitware.com">amitha.perera@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Thu, Sep 3, 2009 at 9:41 AM, David Cole<<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a>> wrote:<br>
> Julien's not only worried about the speed of the SQL query. He's also (and<br>
> probably more) worried about the speed of computing the hash on large input<br>
> data (test output ranges from a few bytes up to several megabytes depending<br>
> on the test...)<br>
<br>
</div>If computation speed is an issue, and the goal is to simply check if<br>
the test has been previously submitted, I'd suggest that a<br>
hierarchical scheme should be used with lazy hash computation, instead<br>
of relying on a hash as the one-and-only solution. Something like<br>
<br>
For each incoming submission I<br>
   Cand = select * from DB where date=I.date and project=I.project and<br>
(other such simple things)<br>
   I.hash=NULL;<br>
   if Cand is not empty<br>
     I.hash = hash(I);<br>
     for each C in Cand<br>
        if C.hash is null<br>
            C.hash = hash(C);<br>
            store C.hash in DB;<br>
        end if<br>
        if C.hash == I.hash<br>
           ignore I and jump to next submission<br>
        end if<br>
     end for<br>
   end if<br>
   insert I into DB;<br>
end for<br>
<br>
I suspect that hashes would not need to be computed very often.<br>
(Unless it's common place for the same test to be submitted multiple<br>
times?)<br>
<br>
Anyway, Eric's suggestion of a different, faster to compute hash is<br>
also a good one.<br>
<font color="#888888"><br>
Amitha.<br>
</font></blockquote></div><br></div></div>