Data Mining ElectricAccelerator Annotation: Bill of Materials

ElectricAccelerator annotation files contain a gold mine of information about your build, such as the dependencies between jobs in the build, the time required to run each job, the exact command-line and environment used to invoke each command in the build, and even every file read and written by each job in the build. Many people have correctly speculated that they could use the file access data in annotation to create a bill of materials for the build, similar to so-called “configuration records” in ClearCase. In this post, we’ll look at how we can do that using the annolib library.
Read the rest of this entry »

Measuring ElectricAccelerator Cache Efficiency

Somebody asked me the other day, “How much does the ElectricAccelerator filesystem cache reduce I/O load on my build host?” This is an interesting question, because in some cases, the impact of Accelerator caching is a big part of the performance benefit. Consider the case of ClearCase dynamic views, which have notoriously bad performance, particularly for stat() operations. By reducing the number of times the build accesses the host filesystem, Accelerator can provide a substantial performance boost. In one extreme case, I saw a build that ran 50 times faster just by using a single Accelerator agent, because the the host filesystem was so slow. In this post, I’ll show how you how to determine how much Accelerator caching is doing for your build.
Read the rest of this entry »