I'm drafting a proof-of-concept build server and what got me thinking is how to store all the data it produces. For example, I'd like to store
- Unit test results: which tests were run, how much time each test took, results, stacktraces, number of assertions
- Code coverage information, with line-level granularity
- Various LoC metrics - per file, per file type
- Code duplicates information
Additionally, these are the kinds of queries I'd like to run:
- How has tests' execution time changed over time?
- How has overall code coverage percentage changed over time? And what about this particular method? How has uncovered line count changed over time?
- What was the dynamic of LoC for *.cs files? How total LoC count was changing?
Stuffing all this into a RDBMS doesn't sound like a particularly good idea. What storage technology fits my bill best here?