View Source

h1. Grid overview
The [build grid] can be managed by switching to _Grid_ tab as shown below:
!grid1.png!
* Active nodes are connected and authorized nodes, and can be used to run build steps. When QuickBuild server is initially installed, the grid contains only one active node - the build server itself.
* Unauthorized nodes are connected nodes, but have not been authorized. To authorize nodes, select them and click the _authorize_ link from action menu.
* Additional grid nodes can be added by [installing build agents|build agent installation guide] on other build machines.
* To remove nodes from the grid, just select nodes you want to remove, and click the _unauthorize_ link from action menu.

h1. {anchor:node attributes} Grid node attributes

Node attributes can be used to filter nodes for certain steps by specifying the step property _node match condition_. For example, the condition _node.getAttribute("os.name").startsWith("Windows")_ matches only agents running Windows operating system, while condition _node.hasAttribute("ant")_ matches agents that have the attribute _ant_ defined.
There are two sets of attributes for a node: system defined attributes and user defined attributes. System defined attributes will be displayed if you select the _System Attributes_ tab in node detail page.

System defined attributes include all environment variables and all Java system properties.

{anchor:define user attributes}User attributes are custom attributes that are defined by user to identify ability/environment of the node. For example, if the agent has Ant and Maven installed, you may define user attributes to reflect this installation as below:
!grid2.png!

h1. Monitor grid node jobs

A single unit of work running on a grid node is called a grid job. In most cases, it is just a step. A grid node may have many jobs running concurrently (for example, steps from builds of different configurations). The number of concurrent jobs is limited by node resources (such as working threads). If the resources are exhausted, newly arriving jobs will be waiting in the queue. A typical job monitoring screen looks like this:
!grid3.png!

h1. {anchor:gridpartition} Partition grid between projects

The whole grid can be partitioned between different projects by assigning nodes in advanced setting of a configuration like below:

!partition.png!

Assume the configuration in this example is _root/myproj_, all builds for _root/myproj_ and its descendant configurations can only run on grid nodes with _project_ attribute set to _MyProj_, regardless what value the node selection setting is set to when define steps. Eligible nodes for steps under this tree must match the node selection condition AND the node assignment condition in the same time. If multiple node assignment conditions are found along the tree, all these node assignment conditions need to be satisfied.