Quantcast
Channel: William Bartholomew
Viewing all articles
Browse latest Browse all 35

Dogfooding Team Foundation Build: By The Numbers

$
0
0

In the spirit of GrantH’s and BHarry’s posts outlining various dogfooding statistics it seems fitting to start my blog post series with some Team Foundation Build specific statistics. To put these numbers in perspective our first end-to-end build completed on July 21st 2010.

We currently have 38 controllers, 14 of these are owned by the build lab and are used for producing official nightly builds of Main, PU branches, and a couple of feature branches. Another 23 controllers are used by PU branches and feature branches for producing unofficial builds, including gated check-in queues. The remaining controller is a drop controller which manages a number of drop machines that have SAN disks attached to them where completed builds are dropped.

Official Build ControllersOfficial Drop ControllersUnofficial ControllersTotal Controllers
1412338

Each official build typically consumes 4 build machines (for different architecture/flavor pairs) and 1 drop machine, unofficial builds typically consume 1 or 2 build machines (again for different architecture/flavor pairs).

Official Build MachinesOfficial Drop MachinesUnofficial Build MachinesTotal Build Agents
2812356360

These build resources are consumed by 93 definitions, each branch typically has 2 or 3 build definitions associated with it (English, localized, code coverage, etc.). Since introducing Team Foundation Build we’ve launched nearly 5,000 builds producing over 12 million information nodes and over 42 million fields associated with them. These information nodes contain information such as log entries but we also leverage them to store strongly-typed information against builds which I’ll discuss in more detail in a future post.

Total Build DefinitionsTotal BuildsTotal Build Information NodesTotal Build Information Node Fields
934,98412,211,76742,468,718

The largest Team Foundation Build tables in our database are:

TableData SizeIndex Size
tbl_Build12,152 KB1,688 KB
tbl_BuildInformation1,070,032 KB1,054,168 KB
tbl_BuildInformationField5,941,648 KB75,736 KB

The query I used to produce these statistics is:

SELECTSUM(CASEWHEN BSH.DisplayName LIKE'DDBLD%'THEN 1 ELSE 0 END)AS'Official Build Controllers',

SUM(CASEWHEN BSH.DisplayName LIKE'DDROP%'THEN 1 ELSE 0 END)AS'Official Drop Controllers',

SUM(CASEWHEN BSH.DisplayName NOTLIKE'DDBLD%'AND BSH.DisplayName NOTLIKE'DDROP%'THEN 1 ELSE 0 END)AS'Unofficial Controllers',

COUNT(*)AS'Total Controllers'

FROM tbl_BuildController BC(NOLOCK)

INNERJOIN tbl_BuildServiceHost BSH(NOLOCK)ON BC.ServiceHostId = BSH.ServiceHostId

 

SELECTSUM(CASEWHEN BSH.DisplayName LIKE'DDBLD%'THEN 1 ELSE 0 END)AS'Official Build Machines',

SUM(CASEWHEN BSH.DisplayName LIKE'DDROP%'THEN 1 ELSE 0 END)AS'Official Drop Machines',

SUM(CASEWHEN BSH.DisplayNameNOTLIKE'DDBLD%'AND BSH.DisplayName NOTLIKE'DDROP%'THEN 1 ELSE 0 END)AS'Unofficial Build Machines',

COUNT(*)AS'Total Build Agents'

FROM tbl_BuildAgent BA(NOLOCK)

INNERJOIN tbl_BuildServiceHost BSH(NOLOCK)ON BA.ServiceHostId = BSH.ServiceHostId

 

SELECTCOUNT(*)AS'Total Build Definitions'

FROM tbl_BuildDefinition BD(NOLOCK)

 

SELECTCOUNT(*)AS'Total Builds'

FROM tbl_Build B(NOLOCK)

 

SELECTCOUNT(*)AS'Total Build Information Nodes'

FROM tbl_BuildInformation BI(NOLOCK)

 

SELECTCOUNT(*)AS'Total Build Information Node Fields'

FROM tbl_BuildInformationField BIF(NOLOCK)

 

EXECsp_spaceused'tbl_Build'

EXECsp_spaceused'tbl_BuildInformation'

EXECsp_spaceused'tbl_BuildInformationField'


Viewing all articles
Browse latest Browse all 35

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>