madecoste / swarming

Automatically exported from code.google.com/p/swarming
Apache License 2.0
0 stars 1 forks source link

Create a way to buckets bots into pools automatically server side #162

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Pools are useful to constrain a set of tasks to an arbitrary subset of the 
bots. It could be to artificially restrain throughput, to better localize 
problems, etc.

Right now if pools are desired, some form of static allocation must be done. 
That's counter to the fundamental design of Swarming, where bots do not have to 
be statically assigned upfront.

So for example, a single pool could be assigned 10 bots. This cannot be 
determined bot side via bot_config.py; the bot doesn't know if there's already 
10 other bots assigned to this pool and it doesn't know if one bot dies.

So the allocation has to be done server side via a set of rules. The logic 
could be as follow;
- Minimum: 10
- Extra dimensions: {'foo': 'bar'}

So basically, the server would ensure that there is at least 10 bots with the 
extra dimensions specified. They would be transparently added to the bot's 
self-published dimensions. The bot has to be told that it has additional 
server-provided dimensions in the poll's reply.

Workaround:
The current work around is to add the extraneous dimension in bot_config.py, 
based on the hostname. That's not maintainable long term.

Original issue reported on code.google.com by maruel@chromium.org on 10 Oct 2014 at 7:03