[Buildbot-devel] How does build request merging work?

Dustin J. Mitchell dustin at v.igoro.us
Sat Mar 19 01:29:53 UTC 2011


On Fri, Mar 18, 2011 at 7:39 PM, David Coppit <david at coppit.org> wrote:
> I'm trying to understand the default build merging behavior. It seems to me that sourcestamps, buildsets, and buildrequests are created as soon as the tree stable timer expires (and as long as the branch/repository filtering is satisfied). Then later build requests are merged, as well as the sourcestamps and maybe the buildsets as well?

Buildsets are just a way for the Dependent scheduler to keep track of
when the set of buildrequests filed by another scheduler are all
complete.  They are never merged.

"Merging" BuildRequests is accomplished by generating a single build
that will complete the entire set of merged requests.  As far as the
database is concerned, there are still multiple BuildRequests.

> Let's say I have 20 schedulers that are generating a bunch of build requests at a rate faster than the machines can build. Will Buildbot merge pending buildrequests such that at most there is one one build request for recent builds? i.e. will it throttle the creation of build requests, instead creating fewer builds with larger lists of changes, as needed?

No, the scheduler does not any throttling or merging.  Merging occurs
when builds are scheduled on builders.

> If a change comes in, then a try build, then another change, is Buildbot smart enough to merge the first and third build request?

Only if you teach it that with the various merging configuration options.

Dustin




More information about the devel mailing list