<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Anamaria Stoica &#187; Planet Mozilla</title>
	<atom:link href="http://anamariamoz.wordpress.com/category/planet-mozilla/feed/" rel="self" type="application/rss+xml" />
	<link>http://anamariamoz.wordpress.com</link>
	<description>My Mozilla Blog</description>
	<lastBuildDate>Tue, 16 Apr 2013 18:52:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='anamariamoz.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Anamaria Stoica &#187; Planet Mozilla</title>
		<link>http://anamariamoz.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://anamariamoz.wordpress.com/osd.xml" title="Anamaria Stoica" />
	<atom:link rel='hub' href='http://anamariamoz.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Mozilla-Central End to End Times Values Distribution (October)</title>
		<link>http://anamariamoz.wordpress.com/2010/11/22/mozilla-central-end-to-end-times-values-distribution-october/</link>
		<comments>http://anamariamoz.wordpress.com/2010/11/22/mozilla-central-end-to-end-times-values-distribution-october/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 16:02:59 +0000</pubDate>
		<dc:creator>Anamaria Stoica</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Planet Mozilla]]></category>
		<category><![CDATA[Build Run]]></category>
		<category><![CDATA[End to End Times]]></category>

		<guid isPermaLink="false">http://anamariamoz.wordpress.com/?p=449</guid>
		<description><![CDATA[In my previous post End to End Times Report I started talking about E2E times, by defining what they are and then looking at some monthly E2E times averages of the past 3 months for mozilla-central and try. I also kept mentioning that the normal E2E times for mozilla-central is a little under 4 hours, [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=449&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In my previous post <a title="End to End Times Report" href="http://anamariamoz.wordpress.com/2010/11/15/end-to-end-times-report/">End to End Times Report</a> I started talking about E2E times, by defining what they are and then looking at some monthly <a href="http://anamariamoz.wordpress.com/2010/11/15/end-to-end-times-report/#AvgE2E">E2E times averages</a> of the past 3 months for mozilla-central and try.</p>
<p>I also kept mentioning that the normal E2E times for mozilla-central is a little under<strong> 4 hours</strong>, but <strong>greatly varies upwards with the system load</strong>. Now, how much exactly do the E2E times vary away from the normal times and how?</p>
<p>In order have a better grasp on what the E2E times values distribution might be, I plotted the histogram of all E2E times for mozilla-central registered in October (more precisely October 1-20, 2010). And here&#8217;s how it looks after removing the outliers:</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/11/hist1_ann_good.jpg"><img class="alignnone size-full wp-image-450" style="border:0 none;" title="Mozilla-central E2E times histogram without outliers (October 1-20)" src="http://anamariamoz.files.wordpress.com/2010/11/hist1_ann_good.jpg?w=700" alt="Mozilla-central E2E times histogram without outliers (October 1-20)"   /></a></p>
<p>The histogram above represents the distribution of the E2E times among bins of 15 minutes.</p>
<p>As it turns out the histogram looks pretty nice. Most values (66.38%) are located in the 3h &#8211; 4h 25m normal time interval, with a high peak in the 3h 45m &#8211; 4h time subinterval.</p>
<p>However there is a long tail of values between 5h to 10 hours. Even though the number of values in each bin is small, summed up together they represent around 15% of the Build Runs.</p>
<p>The values smaller than 3h (10.92%) are build failures and exceptions. The very large outliers (&gt;10h) were excluded from the histogram. They represent 7.18% of all Build Runs, with 4.02% between 10-25h and 3.16% between 25-255h (see plot bellow with outliers included).</p>
<table>
<tbody>
<tr>
<td style="width:110px;"><strong>Time Interval</strong></td>
<td><strong>Percentage (%)</strong></td>
<td><strong>Comments</strong></td>
</tr>
<tr>
<td>0 &#8211; 3h</td>
<td>10.92 %</td>
<td>Failures</td>
<td></td>
</tr>
<tr>
<td>3h &#8211; 4h 25m</td>
<td>66.38 %</td>
<td>Normal times</td>
</tr>
<tr>
<td>4h 25m &#8211; 10h</td>
<td>15.52 %</td>
<td>Long tail of large values</td>
</tr>
<tr>
<td>&gt;10h</td>
<td>7.18 %</td>
<td>Outliers</td>
</tr>
<tr>
<td></td>
<td></td>
<td>* 10h-25h: 4.02%</td>
</tr>
<tr>
<td></td>
<td></td>
<td>* &gt;25h: 3.16%</td>
</tr>
<tr>
<td><strong>Branch</strong></td>
<td>mozilla-central</td>
<td></td>
</tr>
<tr>
<td><strong>Timeframe</strong></td>
<td>~October 1-20, 2010</td>
<td></td>
</tr>
<tr>
<td><strong>No. values</strong></td>
<td>348</td>
<td></td>
</tr>
<tr>
<td><strong>Max value</strong></td>
<td>255h 51m</td>
<td></td>
</tr>
<tr>
<td><strong>Mean value</strong></td>
<td>7h 12m</td>
<td></td>
</tr>
<tr>
<td><strong>Median value</strong></td>
<td>3h 42m</td>
<td></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Here&#8217;s the histogram re-plotted, but this time with all the outliers included:</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/11/hist2_all-copy_small.jpg"><img class="alignnone size-full wp-image-453" style="border:0 none;" title="hist2_all copy_small" src="http://anamariamoz.files.wordpress.com/2010/11/hist2_all-copy_small.jpg?w=700" alt=""   /></a></p>
<p><strong>See Also: </strong><a title="End to End Times Report" href="http://anamariamoz.wordpress.com/2010/11/15/end-to-end-times-report/">End to End Times Report</a>, <a title="Mozilla's Build System" href="http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system/">Mozilla&#8217;s Build System</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anamariamoz.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anamariamoz.wordpress.com/449/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=449&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anamariamoz.wordpress.com/2010/11/22/mozilla-central-end-to-end-times-values-distribution-october/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<georss:point>37.388095 -122.082760</georss:point>
		<geo:lat>37.388095</geo:lat>
		<geo:long>-122.082760</geo:long>
		<media:content url="http://0.gravatar.com/avatar/3bd69fdfceec715f6ffe29b2e8268100?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anamaria0509</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/11/hist1_ann_good.jpg" medium="image">
			<media:title type="html">Mozilla-central E2E times histogram without outliers (October 1-20)</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/11/hist2_all-copy_small.jpg" medium="image">
			<media:title type="html">hist2_all copy_small</media:title>
		</media:content>
	</item>
		<item>
		<title>End to End Times Report</title>
		<link>http://anamariamoz.wordpress.com/2010/11/15/end-to-end-times-report/</link>
		<comments>http://anamariamoz.wordpress.com/2010/11/15/end-to-end-times-report/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 14:46:49 +0000</pubDate>
		<dc:creator>Anamaria Stoica</dc:creator>
				<category><![CDATA[Buildapi]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Planet Mozilla]]></category>
		<category><![CDATA[Build Run]]></category>
		<category><![CDATA[End to End Times]]></category>
		<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://anamariamoz.wordpress.com/?p=334</guid>
		<description><![CDATA[The End to End Time measures how long it takes for a Build Run to complete. That is, the time difference between the timestamp of the change that triggered this Build Run and the timestamp of when the last of the generated Build Requests ends (in other words, when all builds and tests are completed). [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=334&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The <strong>End to End Time </strong>measures how long it takes for a   <a href="http://anamariamoz.wordpress.com/2010/11/12/build-run-report/">Build Run</a> to complete. That is, the time difference between the   timestamp of the change that triggered this Build Run and the timestamp   of when the last of the generated Build Requests ends (in other words,   when all builds and tests are completed). (see Build Run Life Cycle  diagram below, also published in <a href="http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system/">Mozilla&#8217;s Build System</a> blog post)</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/buildrun21.png"><img class="alignnone" style="border:0 none;" src="http://anamariamoz.files.wordpress.com/2010/10/buildrun21.png?w=248&#038;h=218" alt="" width="248" height="218" /></a></p>
<p>The normal End to End Time for mozilla-central is a little under <strong>4 hours</strong>, but greatly varies upwards with the system load.</p>
<h2>Report Contents</h2>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/picture-15.png"><img class="alignnone size-full wp-image-346" style="border:0 none;" title="End to End Times Report" src="http://anamariamoz.files.wordpress.com/2010/10/picture-15.png?w=700&#038;h=359" alt="" width="700" height="359" /></a></p>
<h3>Summary</h3>
<p>As you can see from the snapshot above (snapshot of the End to End Times Report for <strong>try branch</strong> as seen on October 22, 2010, a little after 12:00 PM), the report starts with some general information, like the <strong>branch</strong> selected, number of <a href="http://anamariamoz.wordpress.com/2010/11/12/build-run-report/"><strong>Build Runs</strong></a> found in the specified timeframe (given by startime and endtime URL GET parameters) and another very important value, the <strong>Average build run duration</strong> (also called the<strong> Average End to End Time</strong>).</p>
<h3>Build Runs Info</h3>
<p>Right under, there&#8217;s a table which displays information on individual <a href="http://anamariamoz.wordpress.com/2010/11/12/build-run-report/">Build Runs</a> (each row represents a Build Run):</p>
<h4><strong>1. Push&#8217;s Timestamp</strong></h4>
<p>Initially, the table is sorted by the &#8216;<strong>Least When Timestamp</strong>&#8216; column, which is actually the push&#8217;s change timestamp. This means that at the top should be listed the most recent pushes to the repo (colored gray if still running/pending). Note: the table is sortable by all other columns too.</p>
<h4><strong>2. Result: success vs. warnings vs. failure</strong></h4>
<p>The rows have different colors depending on the Build Run&#8217;s result (&#8216;<strong>Results</strong>&#8216; column): green for success, orange for warnings, red for exception and failure and gray for no result (&#8220;-&#8221;) (if all <a href="http://anamariamoz.wordpress.com/2010/10/04/build-request-query/">Build Requests</a> are currently running or pending).</p>
<h4><strong>3. Complete? Still Running?</strong></h4>
<p>The &#8216;<strong>Complete</strong>&#8216; column tells whether all Build Requests are completed or not (values: yes/no).</p>
<h4><strong>4. End to End Time (Duration)</strong></h4>
<p>A very important column is &#8216;<strong>Duration</strong>&#8216;, also known as the <strong>End to End Time</strong>. The duration is computed as following: <em></em></p>
<p><em>Duration := Greatest  Finish Time &#8211; Least When Timestamp</em></p>
<p>, or how long it took for all <a href="http://anamariamoz.wordpress.com/2010/10/04/build-request-query/">Build  Requests</a> in this <a href="http://anamariamoz.wordpress.com/2010/11/12/build-run-report/">Build Run</a> to complete (or up until now, if not complete). The &#8216;<strong>Least When Timestamp</strong>&#8216; is the  earliest timestamp of the Build Requests&#8217; start times and &#8216;<strong>Greatest  Finish Time</strong>&#8216;, the latest timestamp of the Build Requests&#8217; finish times.</p>
<h4>5. Build Requests Numbers Broke Down by Status And Job Type</h4>
<p>The number of Build Requests within a Build Run (differs per branch, for example in mozilla-central there should be 168 if everything was successful) are broke down once by status: <strong>Complete</strong>, <strong>Running</strong>, <strong>Pending</strong>, <strong>Cancelled</strong>, <strong>Interrupted</strong> and <strong>Misc</strong>, and again by job type: <strong>Builds</strong>, <strong>Unittests</strong> and <strong>Talos</strong>.</p>
<h4>6. Rebuilds And Forcebuilds</h4>
<p>There are also counts on how many <strong>rebuilds</strong> and <strong>forcebuilds</strong> were done.</p>
<h4>7. Further Information, Link to Build Run Report Page</h4>
<p>To see more about the different parameters, check out the <a href="http://anamariamoz.wordpress.com/2010/11/12/build-run-report/">Build Run Report</a>. The revision links on the &#8216;<strong>Revision</strong>&#8216; column points to such reports, where you can see the exact status of individual Build Requests.</p>
<p>The <strong>End to End Times Report</strong> contains all the Build Runs displayed by <a href="http://tbpl.mozilla.org/">Tinderboxpushlog</a>, but with accurate data (which does not lie! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). However the report was not intended as a real time monitorization tool, but rather as an analysis tool which provides a peak into how well the <a href="http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system/">Build System</a> is performing. Not so far anyways&#8230;<br />
<a name="AvgE2E"></a></p>
<h2>Average End to End Times (E2E)</h2>
<p>Here are some E2E Averages computed per month, though E2E times tend to vary greatly from week to week or even from one Build Run to another.</p>
<table>
<tbody>
<tr>
<td valign="top">
<table width="222">
<tbody>
<tr>
<td><strong>Month</strong></td>
<td><strong>Branch</strong></td>
<td><strong>Mean</strong></td>
<td><strong>Median</strong></td>
</tr>
<tr>
<td>Aug</td>
<td>m-c</td>
<td>9h 22m</td>
<td>4h 29m</td>
</tr>
<tr>
<td></td>
<td>try</td>
<td>10h 25m</td>
<td>7h 8m</td>
</tr>
<tr>
<td>Sep</td>
<td>m-c</td>
<td>6h 12m</td>
<td>4h 8m</td>
</tr>
<tr>
<td></td>
<td>try</td>
<td>7h 6m</td>
<td>4h 59m</td>
</tr>
<tr>
<td>Oct</td>
<td>m-c</td>
<td>6h 41m</td>
<td>3h 43m</td>
</tr>
<tr>
<td></td>
<td>try</td>
<td>4h 20m</td>
<td>3h 55m</td>
</tr>
</tbody>
</table>
</td>
<td><a href="http://anamariamoz.files.wordpress.com/2010/11/picture-21.png"><img class="alignnone size-full wp-image-392" style="border:0 none;" title="Picture 21" src="http://anamariamoz.files.wordpress.com/2010/11/picture-21.png?w=700" alt=""   /></a></td>
</tr>
</tbody>
</table>
<p>The average is currently computed only as a simple arithmetic mean, which due to large outlier values might not the the best measurement. The median values were added to the table presented above as a comparison only, and aren&#8217;t currently calculated by the report.</p>
<p>As you can see from the chart, the E2E times have decreased over the past 3 months for mozilla-central and try. For try the improvement is even more visible, mostly thanks to the new <a href="https://wiki.mozilla.org/Build:TryChooser">Try Chooser</a>.<br />
<a name="Problem"></a></p>
<h2>Problem / E2E Report Incomplete</h2>
<p>There is one problem that prevents the E2E Times Report from being complete, and that is the nightly builds. The Build Requests generated for the nightly builds have no revision number attached, which means there is currently no exact way of regrouping the individual Build Requests back to the Build Run. To make things more complicated, the nightly&#8217;s tests do get revision numbers, that is the revision number of the most recent commit, thus making the nightly&#8217;s tests mix up with the previous Build Run&#8217;s Build Requests! (contaminating the E2E time of that Build Run too)</p>
<p>To solve this issue, the following bug has been issued to Bugzilla: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=594496">Bug 594496</a> &#8211; Generate unique id for a push in schedulerdb/statusdb.</p>
<h2>Fun Outliers</h2>
<p>By sorting the table by the &#8216;Duration&#8217; column you can run into many surprising findings, like:</p>
<ul>
<li>outrageous wait times:
<ul>
<li>a <strong>500h build run</strong>, failed. Cause: 500h wait times. Revision: 19a458b7ab57</li>
</ul>
<p><a href="http://anamariamoz.files.wordpress.com/2010/11/picture-24.png"><img class="alignnone size-full wp-image-403" style="border:0 none;" title="Picture 24" src="http://anamariamoz.files.wordpress.com/2010/11/picture-24.png?w=700" alt=""   /></a></li>
<li>one can ruin for them all:
<ul>
<li>a <strong>60h build run</strong>,  <strong>successful</strong>, no wait times. Cause: 1 single talos took 52h and ended successfully (all other Build Requests had normal run times). Revision: 72d2863f43c7</li>
</ul>
<p><a href="http://anamariamoz.files.wordpress.com/2010/11/picture-23.png"><img class="alignnone size-full wp-image-402" style="border:0 none;" title="Picture 23" src="http://anamariamoz.files.wordpress.com/2010/11/picture-23.png?w=700" alt=""   /></a></p>
<ul>
<li>a <strong>19h build run</strong>, <strong>exception</strong>, no wait times. Cause: 1 single talos took 17h and ended in exception (all others had normal runt times). Revision: 0e40a49c27bb</li>
</ul>
<p><a href="http://anamariamoz.files.wordpress.com/2010/11/picture-22.png"><img class="alignnone size-full wp-image-401" style="border:0 none;" title="Picture 22" src="http://anamariamoz.files.wordpress.com/2010/11/picture-22.png?w=700" alt=""   /></a></li>
<li>human rescue intervention (true, a bit late):
<ul>
<li>a <strong>127h build run</strong>, no wait times. Cause: some <strong>cancelled jobs</strong>, after running for too long. Revision: 6dfa6a7c94e0</li>
</ul>
<p><a href="http://anamariamoz.files.wordpress.com/2010/11/picture-25.png"><img class="alignnone size-full wp-image-404" style="border:0 none;" title="Picture 25" src="http://anamariamoz.files.wordpress.com/2010/11/picture-25.png?w=700" alt=""   /></a></li>
</ul>
<p>Thus, the E2E Times Report can also help detect such irregularities in due time!</p>
<p><strong>See Also: </strong><a href="http://anamariamoz.wordpress.com/2010/11/10/average-time-per-builder-report/">Average Time per Builder Report</a>, <a href="http://anamariamoz.wordpress.com/2010/11/12/build-run-report/">Build Run Report</a>, <a href="../2010/10/16/pushes-report/">Pushes Report</a>, <a href="../2010/10/13/wait-times-report/">Wait Times Report</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anamariamoz.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anamariamoz.wordpress.com/334/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=334&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anamariamoz.wordpress.com/2010/11/15/end-to-end-times-report/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<georss:point>37.388095 -122.082760</georss:point>
		<geo:lat>37.388095</geo:lat>
		<geo:long>-122.082760</geo:long>
		<media:content url="http://0.gravatar.com/avatar/3bd69fdfceec715f6ffe29b2e8268100?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anamaria0509</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/buildrun21.png" medium="image" />

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/picture-15.png" medium="image">
			<media:title type="html">End to End Times Report</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/11/picture-21.png" medium="image">
			<media:title type="html">Picture 21</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/11/picture-24.png" medium="image">
			<media:title type="html">Picture 24</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/11/picture-23.png" medium="image">
			<media:title type="html">Picture 23</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/11/picture-22.png" medium="image">
			<media:title type="html">Picture 22</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/11/picture-25.png" medium="image">
			<media:title type="html">Picture 25</media:title>
		</media:content>
	</item>
		<item>
		<title>Build Run Report</title>
		<link>http://anamariamoz.wordpress.com/2010/11/12/build-run-report/</link>
		<comments>http://anamariamoz.wordpress.com/2010/11/12/build-run-report/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 18:28:15 +0000</pubDate>
		<dc:creator>Anamaria Stoica</dc:creator>
				<category><![CDATA[Buildapi]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Planet Mozilla]]></category>
		<category><![CDATA[Build Run]]></category>
		<category><![CDATA[BuildRequest]]></category>
		<category><![CDATA[End to End Times]]></category>
		<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://anamariamoz.wordpress.com/?p=297</guid>
		<description><![CDATA[One push to hg.mozilla.org triggers off the Build System to generate a certain number of Build Requests (depending on the branch). All these build requests make up a Build Run. In a previous post I have covered in more detail its flow through the Build System and the Build Run Life Cycle. The present post [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=297&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>One push to <em>hg.mozilla.org</em> triggers off the <a href="http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system/">Build System</a> to generate a certain number of <a href="http://anamariamoz.wordpress.com/2010/10/04/build-request-query/">Build Requests</a> (depending on the branch). All these build requests make up a <strong>Build Run</strong>. In a previous <a href="http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system/">post</a> I have covered in more detail its flow through the Build System and the <a href="http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system#BuildRunLifeCycle">Build Run Life Cycle</a>.</p>
<p>The present post will focus on the <strong><a href="http://hg.mozilla.org/build/buildapi/">Buildapi</a> Report </strong>on Build Runs.</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/11/picture-26.png"><img class="alignnone size-full wp-image-427" style="border:0 none;" title="Picture 26" src="http://anamariamoz.files.wordpress.com/2010/11/picture-26.png?w=700&#038;h=307" alt="" width="700" height="307" /></a></p>
<p><a name="Parameters"></a></p>
<h2>URL &amp; Parameters</h2>
<p>The report can be accessed at the following URL:</p>
<p><code>&lt;hostname&gt;/reports/<strong>revision</strong>/&lt;branch_name&gt;/&lt;revision&gt; </code></p>
<p><code>, &lt;branch_name&gt; := the branch name (e.g. mozilla-central, try, ...)<br />
, &lt;revision&gt; := the revision number (first 12 characters)</code></p>
<h2>Report Contents</h2>
<p><a name="Summary"></a></p>
<h3>1. Summary</h3>
<p>The report starts by displaying some general information on the Build Run:</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/picture-17.png"><img class="alignnone size-full wp-image-302" style="border:0 none;" title="Build Run - Summary" src="http://anamariamoz.files.wordpress.com/2010/10/picture-17.png?w=700" alt="Build Run - Summary"   /></a><br />
Fields explained:</p>
<ul>
<li><strong>Revision</strong> &#8211; the revision number (first 12 chars)</li>
<li><strong>No. build requests</strong> &#8211; number of Build Requests</li>
<li>e2e Time:
<ul>
<li><strong>Duration</strong> &#8211; the <a href="http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system#end_to_end_time">End to End Time</a> (<em><strong>Duration := Greatest Finish Time &#8211; Least When Timestamp</strong></em>), or how long it took for all Build Requests in this Build Run to complete</li>
<li><strong>Least When Timestamp</strong> &#8211; the earliest timestamp of the Build Requests&#8217; start times</li>
<li><strong>Greatest Finish Time</strong> &#8211; the latest timestamp of the Build Requests&#8217; finish times</li>
</ul>
</li>
<li>Build Requests <strong>statuses</strong> break down (<strong><em>No. build requests := Complete + Running + Pending + Cancelled + Interrupted + Misc</em></strong>):
<ul>
<li><strong>Complete</strong> &#8211; number of completed Build Requests</li>
<li><strong>Running</strong> &#8211; number of still running Build Requests</li>
<li><strong>Pending</strong> &#8211; number of still pending Build Requests</li>
<li><strong>Cancelled</strong> &#8211; number of cancelled Build Requests</li>
<li><strong>Interrupted</strong> &#8211; number of interrupted Build Requests</li>
<li><strong>Misc</strong> &#8211; number of Build Requests having other statuses (should never happen)</li>
</ul>
</li>
<li><strong>Rebuilds</strong> &#8211; number of rebuilds</li>
<li><strong>Forcebuilds</strong> &#8211; number of forced builds</li>
<li><strong>Results</strong> &#8211; how many of the Build Requests were successful, with warnings, failed  (and/or encountered exceptions) or other (usually still pending and running Build Requests)</li>
<li>Build Requests <strong>job type</strong> break down (<em><strong>No. build requests := Builds + Unittests + Talos</strong></em>):
<ul>
<li><strong>Builds</strong> &#8211; number of builds</li>
<li><strong>Unittests</strong> &#8211; number of unittests</li>
<li><strong>Talos</strong> &#8211; number of talos</li>
</ul>
</li>
</ul>
<h3>2. Details: Individual Build Requests</h3>
<p>Next, the report presents information on the individual Build Requests making up the Build Run. If you are interested in how the Build Requests are fetched from the database and what the individual fields describing a Build Request mean, you might want to also read <a href="http://anamariamoz.wordpress.com/2010/10/04/build-request-query/">Build Requests Query</a>.</p>
<p>The table displays a lot of information, and many of the parameters are internal and relevant only to how the Build System works.</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/picture-19.png"><img class="alignnone size-full wp-image-304" style="border:0 none;" title="Build Run - Build Requests Table" src="http://anamariamoz.files.wordpress.com/2010/10/picture-19.png?w=700&#038;h=209" alt="Build Run - Build Requests Table" width="700" height="209" /></a></p>
<p>, continuing with:</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/picture-20.png"><img class="alignnone size-full wp-image-305" style="border:0 none;" title="Build Run - Build Request Table More Info" src="http://anamariamoz.files.wordpress.com/2010/10/picture-20.png?w=700&#038;h=183" alt="Build Run - Build Request Table More Info" width="700" height="183" /></a></p>
<h2>Demo</h2>
<p><a href="http://dl.dropbox.com/u/1119078/mozilla/demo/buildrun/eae6bdacf6d2.html">Build Run eae6bdacf6d2 Report Demo</a>.</p>
<p>This is just a demo &amp; works only for Build Run with revision number eae6bdacf6d2. All links outside the purpose of this demo were deliberately  disabled. Enjoy!</p>
<p>Note: all table columns are sortable.</p>
<p><a href="http://dl.dropbox.com/u/1119078/mozilla/demo/buildrun/eae6bdacf6d2.html"><img class="alignnone size-medium wp-image-306" style="border:0 none;" title="Build Run - Overview" src="http://anamariamoz.files.wordpress.com/2010/10/picture-18.png?w=300&#038;h=187" alt="" width="300" height="187" /></a></p>
<p><strong>See Also: </strong><a href="http://anamariamoz.wordpress.com/2010/11/10/average-time-per-builder-report/">Average Time per Builder Report</a>, <a href="http://anamariamoz.wordpress.com/2010/11/15/end-to-end-times-report/">End to End Times Report</a>, <a href="http://anamariamoz.wordpress.com/2010/10/16/pushes-report/">Pushes Report</a>, <a href="http://anamariamoz.wordpress.com/2010/10/13/wait-times-report/">Wait Times Report</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anamariamoz.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anamariamoz.wordpress.com/297/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=297&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anamariamoz.wordpress.com/2010/11/12/build-run-report/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<georss:point>37.388095 -122.082760</georss:point>
		<geo:lat>37.388095</geo:lat>
		<geo:long>-122.082760</geo:long>
		<media:content url="http://0.gravatar.com/avatar/3bd69fdfceec715f6ffe29b2e8268100?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anamaria0509</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/11/picture-26.png" medium="image">
			<media:title type="html">Picture 26</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/picture-17.png" medium="image">
			<media:title type="html">Build Run - Summary</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/picture-19.png" medium="image">
			<media:title type="html">Build Run - Build Requests Table</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/picture-20.png" medium="image">
			<media:title type="html">Build Run - Build Request Table More Info</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/picture-18.png?w=300" medium="image">
			<media:title type="html">Build Run - Overview</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing the Average Time per Builder Report</title>
		<link>http://anamariamoz.wordpress.com/2010/11/10/average-time-per-builder-report/</link>
		<comments>http://anamariamoz.wordpress.com/2010/11/10/average-time-per-builder-report/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 16:06:04 +0000</pubDate>
		<dc:creator>Anamaria Stoica</dc:creator>
				<category><![CDATA[Buildapi]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Planet Mozilla]]></category>
		<category><![CDATA[Average Time per Builder]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[Report]]></category>

		<guid isPermaLink="false">http://anamariamoz.wordpress.com/?p=215</guid>
		<description><![CDATA[The Average Time per Builder Report measures the average run time of each builder (e.g. &#8216;Linux mozilla-central build&#8217;, &#8216;Rev3 Fedora 12 mozilla-central opt test crashtest&#8217;) within a branch, computed over a timeframe. It also calculates the percentage of time spent by the system running jobs for each builder and the percentage of successful vs. warnings [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=215&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The <strong>Average Time per Builder Report</strong> measures the <strong>average run time</strong> of each <strong>builder</strong> (e.g. &#8216;Linux mozilla-central build&#8217;, &#8216;Rev3 Fedora 12 mozilla-central opt test crashtest&#8217;) within a branch, computed over a timeframe. It also calculates the percentage of time spent by the system running jobs for each builder and the percentage of successful vs. warnings vs. failed jobs. In addition, all information mentioned above is aggregated and filterable by platform (fedora vs. fedora64 vs. leopard vs. linux&#8230;), build type (debug vs. opt) and job type (build vs. talos vs. unittest vs. repack).</p>
<table style="margin-bottom:10px;">
<tbody>
<tr>
<td><a href="http://anamariamoz.files.wordpress.com/2010/10/avg_time_builder_top.png"><img class="size-full wp-image-220  alignnone" style="border:0 none;" title="avg_time_builder_top" src="http://anamariamoz.files.wordpress.com/2010/10/avg_time_builder_top.png?w=700" alt="First &amp;amp; last builders sorted by avg. run time"   /></a></td>
<td><a href="http://anamariamoz.files.wordpress.com/2010/10/avg_time_builder_pie_platforms.png"><img class="size-full wp-image-219 alignnone" style="border:0 none;" title="avg_time_builder_pie_platforms" src="http://anamariamoz.files.wordpress.com/2010/10/avg_time_builder_pie_platforms.png?w=700" alt="Time spent per each platform in mozilla-central (Oct 1-20)"   /></a></td>
</tr>
<tr style="font-size:.8em;">
<td style="padding:4px;"><em>First &amp; last builders sorted by avg. run time (mozilla-central, Oct 1-20)</em></td>
<td style="padding:4px;"><em>Time spent per each platform in mozilla-central (Oct 1-20)</em></td>
</tr>
</tbody>
</table>
<h2>URL &amp; Parameters</h2>
<p>The report can be accessed at the following URL:</p>
<p><code>&lt;hostname&gt;/reports/<strong>builders</strong>/&lt;branch_name&gt;<strong> </strong>?(&lt;param&gt;=&lt;value&gt;&amp;)* </code></p>
<p><code>, &lt;branch_name&gt; := the branch name (e.g. mozilla-central, try, ...)<br />
</code></p>
<p><a name="Parameters"></a></p>
<p><strong>Parameters</strong> (all optional):</p>
<ul>
<li><strong>format</strong> &#8211; format of the output; <em>allowed values: html, json, chart</em>; <em>default</em>: <em>html</em></li>
<li><strong>starttime</strong> &#8211; start time, UNIX timestamp (in seconds); <em>default</em>: <em>endtime</em> minus 24 hours</li>
<li><strong>endtime</strong> &#8211; end time, UNIX timestamp (in seconds); <em>default</em>: <em>starttime</em> plus 24 hours or current time (if <em>starttime</em> is not specified either)</li>
<li><strong>tqx</strong> &#8211; used by <a href="http://code.google.com/apis/visualization/documentation/gallery.html">Google Visualization API</a> (automatically appended by the library), relevant only if <strong>format=chart</strong>; <em>default</em>: <em>&#8221;</em></li>
<li><strong>plaform </strong>- comma separated list of platforms; filter and display results only for the listed platforms; <em>allowed values: fedora, fedora64, leopard, linux, linux64, snowleopard, win2k3, win7, win764, xp</em>; <em>default</em>: ” (all)</li>
<li><strong>build_type </strong>- comma separated list of build types (opt, debug); filter and display results only for the listed build types; <em>allowed values: debug, opt; default</em>: ” (all)</li>
<li><strong>job_type </strong>- comma separated list of job types (build, unittest, talos, repack); filter and display results only for the listed job types; <em>allowed values: build, repack, talos, unittest; default</em>: ” (all)</li>
<li><strong>detail_level </strong>- the detail level for the results (builder, job_type, build_type, platform, branch). By default, results are computed per <em>builder</em>; the other detail levels aggregate the results at job type, build type, platform or branch level; <em>allowed values: branch, platform, build_type, job_type, builder; default: builder</em></li>
</ul>
<h2>Features</h2>
<h3>1. <strong>Average Run Time</strong></h3>
<p>First and foremost, the report measures the average run time for each builder (<em>detail_level=</em><em>builder</em>). This way you can see how long individual builds, unittests and talos take on average and compare them.</p>
<p>By setting different filters, it is possible to compare only the builders of a platform, build type or job type of interest. Just to take a couple of examples, it&#8217;s very easy to see:</p>
<ul>
<li>which <em>fedora unittest</em> takes the longest (<em>platform=fedora; job_type=unittest; detail_level=builder</em>): Rev3 &#8216;Fedora 12 mozilla-central debug test mochitests-4/5&#8242; with 0h 59m 45s &#8211; see <a href="http://dl.dropbox.com/u/1119078/mozilla/demo/builders/builders.html?detail_level=builder&amp;platform=fedora&amp;build_type=debug,opt&amp;job_type=unittest&amp;s=8&amp;sd=desc">Fedora Unittest Demo</a></li>
</ul>
<p>or</p>
<ul>
<li>which <em>platform </em>takes the longest to <em>build </em> (<em>platform=; build_type=debug,opt; job_type=build; detail_level=builder</em>): &#8216;OS X 10.6.2 mozilla-central nightly&#8217; with 2h 52m 46s &#8211; see <a href="http://dl.dropbox.com/u/1119078/mozilla/demo/builders/builders.html?detail_level=builder&amp;platform=fedora,fedora64,leopard,linux,linux64,snowleopard,win2k3,win7,win764,xp&amp;build_type=debug,opt&amp;job_type=build&amp;s=8&amp;sd=desc">Platform Builds Demo</a></li>
</ul>
<p>The averages are simple <em>arithmetic means </em>so far, calculated over the number of Build Requests found for each builder within the specified timeframe. The number of Build Requests are displayed on the <strong>&#8216;No. breqs&#8217;</strong> column and are different for each builder.</p>
<p>As a future improvement, the <em>median</em> could be used instead of the simple mean, or removing the <em>outliers</em> when computing the mean.</p>
<h3>2.<strong> Percentage of System Run Time</strong></h3>
<p>In addition to the average run times, the report measures the percentage of time spent by the system doing jobs of a certain type (<strong>&#8216;PTG Run Time %&#8217;</strong> column). This number is computed by summing the run times of all Build Requests of a certain builder (job type, build type or platform, depending on the chosen detail level) and divided by the sum of the run times of all Build Requests displayed, after all filters have been applied (platforms, build types or job types).</p>
<p><strong>Example</strong> &#8211; <strong>How much time is spent per each Linux builder?</strong></p>
<ul>
<li>Filters: platform=linux; build_type=opt,debug; job_type=build</li>
<li>Detail level: builder</li>
</ul>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/linux_builds_pie.png"><img class="size-full wp-image-277 alignnone" style="border:0 none;" title="linux_builds_pie" src="http://anamariamoz.files.wordpress.com/2010/10/linux_builds_pie.png?w=700" alt=""   /></a><a href="http://anamariamoz.files.wordpress.com/2010/10/linux_builds_table.png"><img class="alignnone size-full wp-image-278" style="border:0 none;" title="linux_builds_table" src="http://anamariamoz.files.wordpress.com/2010/10/linux_builds_table.png?w=700" alt=""   /></a></p>
<p>As you can see from the table above, when looking only at Linux build builders, the system spends 34.78% doing &#8216;Android R7 mozilla-central build&#8217; builds, based on 345 Build Requests having an average of 33m 21s. The percentage goes up both with the number of Build Requests and average run time.</p>
<p>The example looks at jobs registered between October 1-20, 2010 on mozilla-central. The same example can be accessed on the demo page at <a href="http://dl.dropbox.com/u/1119078/mozilla/demo/builders/builders.html?detail_level=builder&amp;platform=linux&amp;build_type=debug,opt&amp;job_type=build&amp;s=7&amp;sd=desc">Linux Builders Demo</a>.</p>
<h3>3. <strong>Aggregation</strong></h3>
<p>It is possible to aggregate the results for the builders on upper levels, by setting the <em>detail_level </em>to <em>job_type, build_type, platform or branch.</em><strong> </strong></p>
<p><strong><a href="http://anamariamoz.files.wordpress.com/2010/10/detail_levels.png"><img class="size-full wp-image-263 alignnone" style="border:0 none;" title="detail_levels" src="http://anamariamoz.files.wordpress.com/2010/10/detail_levels.png?w=700" alt=""   /></a></strong></p>
<p>To make things more clear, let&#8217;s take an example: <strong>How much time is it spent per each </strong><strong>Snowleopard optimized </strong><strong> job type?</strong></p>
<ul>
<li>Filters: platform=snowleopard; build_type=opt; job_type=build,repack,talos,unittest</li>
<li><strong>Detail level: job_type</strong></li>
</ul>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/picture-81.png"><img class="alignnone size-full wp-image-281" style="border:0 none;" title="Picture 8" src="http://anamariamoz.files.wordpress.com/2010/10/picture-81.png?w=700" alt=""   /></a></p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/picture-13.png"><img class="alignnone size-full wp-image-282" style="border:0 none;" title="Picture 13" src="http://anamariamoz.files.wordpress.com/2010/10/picture-13.png?w=700" alt=""   /></a></p>
<p>The example looks at jobs registered between October 1-20, 2010 on  mozilla-central. See demo page at <a href="http://dl.dropbox.com/u/1119078/mozilla/demo/builders/builders.html?detail_level=job_type&amp;platform=snowleopard&amp;build_type=opt&amp;job_type=build,repack,talos,unittest&amp;s=7&amp;sd=desc">Snowleopard optimized job types</a>.</p>
<h3>4. <strong>Filters</strong></h3>
<p>There are 3 types of filters that can be set: platforms, build types and job types. All of them have been used in one or more of the previous examples. For instance, in the <strong>&#8216;How much time is it spent per each </strong><strong>Snowleopard optimized </strong><strong> job type&#8217; </strong>example (see 3. Aggregation), the filters are set as follows: platform=snowleopard; build_type=opt; job_type=build,repack,talos,unittest.<strong> </strong></p>
<h3>5. <strong>Percentage of Success vs. Warnings vs. Failure</strong></h3>
<p>Another interesting information presented by the report is the percentage of success vs. warnings vs. failure of registered build requests. By sorting the results by these values, you can easily see which tests fail the most, always fail, or always pass.</p>
<p><strong>Examples:</strong></p>
<ul>
<li><a href="http://dl.dropbox.com/u/1119078/mozilla/demo/builders/builders.html?detail_level=builder&amp;platform=fedora,fedora64,leopard,linux,linux64,snowleopard,win2k3,win7,win764,xp&amp;build_type=debug,opt&amp;job_type=build,repack,talos,unittest&amp;s=11&amp;sd=desc">Most successful builders</a> (note: there are 18 builders with 100% success rate; are these tests effective?)</li>
</ul>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/picture-14.png"><img class="alignnone size-full wp-image-286" style="border:0 none;" title="Picture 14" src="http://anamariamoz.files.wordpress.com/2010/10/picture-14.png?w=700" alt=""   /></a></p>
<ul>
<li><a href="http://dl.dropbox.com/u/1119078/mozilla/demo/builders/builders.html?detail_level=builder&amp;platform=fedora,fedora64,leopard,linux,linux64,snowleopard,win2k3,win7,win764,xp&amp;build_type=debug,opt&amp;job_type=build,repack,talos,unittest&amp;s=15&amp;sd=desc">Most failing builders</a> (note: there are 11 builders with 100% failure (failure or exception) rate; why do they always fail?)</li>
</ul>
<h2>Demo</h2>
<p><a href="http://dl.dropbox.com/u/1119078/mozilla/demo/builders/builders.html">Average Time per Builder Report Demo</a></p>
<p>This is just a demo &amp; works only for mozilla-central for October 1-20, 2010. All links outside the purpose of this demo were deliberately disabled. Enjoy!</p>
<p>Note: all table columns are sortable.</p>
<p><a href="http://dl.dropbox.com/u/1119078/mozilla/demo/builders/builders.html"><img class="size-medium wp-image-236 alignnone" style="border:0 none;" title="avg_time_builder_demo" src="http://anamariamoz.files.wordpress.com/2010/10/avg_time_builder_demo.png?w=300&#038;h=239" alt="" width="300" height="239" /></a></p>
<h2>Repository</h2>
<p>The main module handling the Builders report is <a href="http://hg.mozilla.org/build/buildapi/file/672a093dd8bf/buildapi/model/builders.py">buildapi.model.builders</a>.</p>
<p><strong>See Also: </strong><strong> </strong><a href="../2010/10/16/pushes-report/">Pushes Report</a>, <a href="../2010/10/13/wait-times-report/">Wait Times Report</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anamariamoz.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anamariamoz.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=215&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anamariamoz.wordpress.com/2010/11/10/average-time-per-builder-report/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<georss:point>37.388095 -122.082760</georss:point>
		<geo:lat>37.388095</geo:lat>
		<geo:long>-122.082760</geo:long>
		<media:content url="http://0.gravatar.com/avatar/3bd69fdfceec715f6ffe29b2e8268100?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anamaria0509</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/avg_time_builder_top.png" medium="image">
			<media:title type="html">avg_time_builder_top</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/avg_time_builder_pie_platforms.png" medium="image">
			<media:title type="html">avg_time_builder_pie_platforms</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/linux_builds_pie.png" medium="image">
			<media:title type="html">linux_builds_pie</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/linux_builds_table.png" medium="image">
			<media:title type="html">linux_builds_table</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/detail_levels.png" medium="image">
			<media:title type="html">detail_levels</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/picture-81.png" medium="image">
			<media:title type="html">Picture 8</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/picture-13.png" medium="image">
			<media:title type="html">Picture 13</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/picture-14.png" medium="image">
			<media:title type="html">Picture 14</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/avg_time_builder_demo.png?w=300" medium="image">
			<media:title type="html">avg_time_builder_demo</media:title>
		</media:content>
	</item>
		<item>
		<title>Mozilla&#8217;s Build System</title>
		<link>http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system/</link>
		<comments>http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 16:56:55 +0000</pubDate>
		<dc:creator>Anamaria Stoica</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Planet Mozilla]]></category>
		<category><![CDATA[Build Master]]></category>
		<category><![CDATA[Build Run]]></category>
		<category><![CDATA[Build System]]></category>
		<category><![CDATA[Buildbot]]></category>
		<category><![CDATA[buildpool]]></category>
		<category><![CDATA[End to End Times]]></category>
		<category><![CDATA[Scheduler Database]]></category>
		<category><![CDATA[Scheduler Master]]></category>
		<category><![CDATA[Slave]]></category>
		<category><![CDATA[Test Master]]></category>
		<category><![CDATA[testpool]]></category>
		<category><![CDATA[trybuildpool]]></category>
		<category><![CDATA[Wait Times]]></category>

		<guid isPermaLink="false">http://anamariamoz.wordpress.com/?p=158</guid>
		<description><![CDATA[Mozilla&#8217;s Build System is a very cool distributed system run by Buildbot. The system automatically rebuilds and tests the tree every time something has changed. The Build Infrastructure currently has around 1,000 machines grouped into 3 pools, each made up of several Build Masters and many Slaves: Build Pool (handles builds triggered by all changes, [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=158&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Mozilla&#8217;s Build System is a very cool distributed system run by <a href="http://buildbot.net/">Buildbot</a>. The system automatically rebuilds and tests the tree every time something has changed.</p>
<p>The Build Infrastructure currently has around 1,000 machines grouped into 3 <strong>pools</strong>, each made up of several <strong>Build Masters</strong> and many <strong>Slaves</strong>:<em> </em></p>
<ul>
<li><strong>Build Pool</strong> (handles builds triggered by all changes, except those going to Try):
<ul style="margin-bottom:0;">
<li>4 Build Masters</li>
<li> ~300 Slaves</li>
</ul>
</li>
<li><strong>Try Build Pool</strong> (handles Try builds<em>):</em>
<ul style="margin-bottom:0;">
<li>1 Build Master</li>
<li> ~200 Slaves</li>
</ul>
</li>
<li><strong>Test Pool</strong> (handles all tests, including Try)
<ul style="margin-bottom:0;">
<li>7 Test Masters</li>
<li>~400 Slaves</li>
</ul>
</li>
</ul>
<h3>How it works</h3>
<p>The <strong>hg poller</strong> looks for new <em>changes</em> in the <strong>hg.mozilla.org</strong> repository every few minutes. The changes are picked up by the <strong>Build Scheduler Master</strong>, which creates <a href="http://anamariamoz.wordpress.com/2010/10/04/build-request-query/"><em>Build Requests</em></a>, one for each of the supported platforms. The Build Requests go into the <strong>Scheduler Database</strong> as pending. The <strong>Build Masters</strong> look for pending Build Requests and take them on only if there are free <strong>Slaves </strong>to assign them to.</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/buildbot.png"><img class="alignnone size-full wp-image-159" style="border:0 none;" title="Mozilla's Build System" src="http://anamariamoz.files.wordpress.com/2010/10/buildbot.png?w=700" alt="Mozilla's Build System"   /></a></p>
<p>As the builds complete, the Build Master updates their statuses in the Scheduler Database. Also, the <strong>Test Scheduler Master </strong>creates <em>Test Build Requests </em>for the corresponding tests.</p>
<p>Next, the Test Build Requests are picked up by the <strong>Test Masters</strong> and assigns them to free Slaves. When the tests are complete, the Test Master updates back their statuses in the Scheduler Database.</p>
<p>Each Build Master and Test Master controls its own set of Slaves<em>.</em><br />
<a name="BuildRunLifeCycle"></a></p>
<h3 style="margin:30px 0 15px;">Build Run Life Cycle</h3>
<p>One push to <em>mozilla-central</em>, if successful, generates a total of <strong>168 Build Requests</strong> (as of October 2010, but subject to change in the future), from which <strong>10</strong> are <strong>builds</strong> (one for each of the supported 10 platforms), <strong>108 unittests</strong> and<strong> 50 talos tests</strong>. All these build requests make up a <strong>Build Run</strong>.</p>
<p>Each of the 10 platform builds comes with its own set of test requests. The tests are created only when the corresponding build completes, and only if successful. Which means that if there are failed builds, some of the tests won&#8217;t be created, and the Build Run won&#8217;t have 168 Build Requests, but less.</p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/buildrun21.png"><img class="alignnone size-full wp-image-168" style="border:0 none;" title="Build Run Life Cycle" src="http://anamariamoz.files.wordpress.com/2010/10/buildrun21.png?w=700" alt="Build Run Life Cycle"   /></a></p>
<p>Two very important measures in a Build Runs&#8217;s life cycle are the <strong>Wait Time</strong> and <strong>End to End Time</strong>.<br />
<a name="wait_time"></a><br />
The <strong>Wait Time</strong> measures how long Build Requests wait  in  the queue before starting, more specific, it  measures the time   difference between the timestamp of the change that  generated that   Build Request and the timestamp of when that Build Request is assigned   to a  free slave. (see Build Run Life Cycle diagram above)<br />
<a name="end_to_end_time"><br />
</a>The <strong>End to End Time </strong>measures how long it takes for a  Build Run to complete. That is, the time difference between the  timestamp of the change that triggered this Build Run and the timestamp  of when the last of the generated Build Requests ends (in other words,  when all builds and tests are completed). (see Build Run Life Cycle diagram above)</p>
<p>The normal End to End Time for mozilla-central is a little under <strong>4 hours</strong>, but greatly varies upwards with the system load.</p>
<h3 style="margin-top:30px;">The Great Wall of Mac minis</h3>
<p>The builds are done on a mix of VMs, 1U servers, xserves and Mac minis, and all the testing is done on Mac minis.</p>
<p>The Great Wall of Mac minis is made up of a little over 400 of the Mac minis&#8217; boxes, and is located by the Release Engineers&#8217; desks in the Mountain View office. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a href="http://anamariamoz.files.wordpress.com/2010/10/img_9951.jpg"><img class="alignnone size-medium wp-image-161" style="border:0 none;" title="The Great Wall of Mac minis" src="http://anamariamoz.files.wordpress.com/2010/10/img_9951.jpg?w=300&#038;h=200" alt="" width="300" height="200" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anamariamoz.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anamariamoz.wordpress.com/158/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anamariamoz.wordpress.com&#038;blog=14370944&#038;post=158&#038;subd=anamariamoz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anamariamoz.wordpress.com/2010/11/08/mozillas-build-system/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<georss:point>37.388095 -122.082760</georss:point>
		<geo:lat>37.388095</geo:lat>
		<geo:long>-122.082760</geo:long>
		<media:content url="http://0.gravatar.com/avatar/3bd69fdfceec715f6ffe29b2e8268100?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anamaria0509</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/buildbot.png" medium="image">
			<media:title type="html">Mozilla&#039;s Build System</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/buildrun21.png" medium="image">
			<media:title type="html">Build Run Life Cycle</media:title>
		</media:content>

		<media:content url="http://anamariamoz.files.wordpress.com/2010/10/img_9951.jpg?w=300" medium="image">
			<media:title type="html">The Great Wall of Mac minis</media:title>
		</media:content>
	</item>
	</channel>
</rss>