Select a view from the menu above.

Definitions

Silo
A set of interchangeable slaves. For example, a Darwin9 slave isn't interchangeable with a Linux64 slave. Silos are based on relatively fixed attributes of the slaves' hardware and sofware configuration -- attributes that cannot be changed without manual intervention.
Pool
a set of masters and slaves, where any of the slaves can be allocated to any of the masters. Pools are the primary configuration knob for the allocator.
Trustlevel
The trust level specifies the kind of code that can run on this slave. It currently maps to the various levels of version-control commit priviledges -- tryuser and core.

Allocation Process

Within each pool, the allocator attempts to balance the slaves in each silo across the available masters. The balancing algorithm proceeds as follows:

Note that the balancing applies to the intersection of a silo and a pool. The more slaves in each such intersection, the better the allocator can perform. As such, we should make all efforts to minimize the number of distinct pools and silos into which we divide our slaves.