The previous patch introduced [placement]max_allocation_candidates
config option to limit the number of candidates generated for a single
query.
If the number of generated allocation candidates are limited by that
config option then it is possible to get candidates from a limited set of
root providers (computes, anchoring providers) as placement uses a
depth-first strategy, generating all candidates from the first root
before considering the next one.
To avoid unbalanced results this patch introduces a new config option
[placement]allocation_candidates_generation_strategy with the possible
values:
* depth-first, the original strategy that generates all candidate from
the first root before moving to the next. This is will be the default
strategy for backward compatibility
* breadth-first, a new possible strategy that generates candidates from
available roots in a round-robin fashion, one candidate from each
root before taking the second candidate from the first root.
Closes-Bug: #2070257
Change-Id: Ib7a140374bc91cc9ab597d0923b0623f618ec32c