Changes between Version 2 and Version 3 of Data Storage
- Timestamp:
- Sep 19, 2005, 8:12:53 PM (19 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Data Storage
v2 v3 11 11 * Time it took to execute the test 12 12 13 Other data such as compilation errors and warnings would only consist of the message of the error or warning. Code coverage would annotate each line in the code base with the number of times that line has been executed, and in addition accumulate coverage statistics on a per-file or per-class basis. 13 Code coverage, on the other hand, might look like this: 14 14 15 == XML Database Backend == 15 * Name of the unit (module, class, etc) 16 * Total lines of code in the unit 17 * Percentage of lines executed 18 * Number of times every lin was executed 16 19 17 Semi-structured data such as this is not a good candidate for storage in a relational database. Instead, native XML databases are rather well suited for storing semi-structured data. Bitten therefore uses [http://www.sleepycat.com/products/xml.shtml Berkeley DB XML] to store reports generated by builds. BDB XML supports the [http://www.w3.org/TR/xquery/ XQuery] standard and thereby enables efficient and powerful analysis and aggregation of the collected software metrics.20 Other data such as compilation errors/warnings or style checks would consist of the message of the error or warning. 18 21 19 ''Note that Bitten allows an alternative XQuery capable data store being used instead of BDB XML.'' 22 == Database Layout == 20 23 21 Every report is stored as a self-contained document in the XML DB. It is associated with a specific build step using metadata: 24 As Bitten should support the storage of arbritray metrics, the tables for storing this data need to be fairly generic. Versions of Bitten prior to [milestone:0.5] used a Berkeley DB XML backend to store reports, but for various reasons the report data is now mapped to tables in the relational database already provided by the Trac environment. 22 25 23 `config`:: The name of the build configuration the report belongs to 24 `build`:: The unique ID of the associated build 25 `step`:: The name of the build step 26 27 The reports themselves are stored verbatim as received from the build slave, for example: 26 A report is received in XML format from the build slave, for example: 28 27 29 28 {{{