(0021747)
|
Chris Hillery
|
2010-08-13 19:36
|
|
For reference, our project has 25 nightly builds. There are 35,000 or so unique test names, and each build runs some subset (there are many overlaps). We discovered this problem because one build, which runs about 20,000 tests, was regularly showing about 10 tests from other builds.
Sorry to say, but a crc32 simply isn't a unique key! :) In fact, even with my patch, the possibility exists for collisions, although it would most likely require a fairly unusual set of circumstances (eg., different tests with the same name).
Since the test table has an index on the 'name' field, I do not think my change will be "much slower". I didn't do careful analysis, but I haven't noticed any significant change with our project.
Still, if this was a concern, the existing single-column indexes could be either replaced by or supplemented with a true multi-column index over the crc32,name,projectid fields. Since mysql (and I assume postgres) can use left subsets of multi-column indexes, probably the three separate indexes could be replaced entirely with the single multi-column index, which would therefore probably not take significantly more disk space. |
|