[placement] update 19-08

Eric Fried openstack at fried.cc
Fri Mar 1 15:00:04 UTC 2019


Thanks for restarting this, Chris. I've always found it informative and
helpful.

> * Microversion 1.31 adds `in_tree` and `in_treeN` query parameters
>   to GET /allocation_candidates. This is useful in a variety of
>   nested resource provider scenarios, including the big bandwidth QoS
>   changes that are in progress in nova and neutron.

To expand on this: The bandwidth-related use case would be for e.g.
adding new QoS'd vifs to an existing instance. We would want to GET
/allocation_candidates from only those providers associated with the
compute node on which the instance already resides.

However, the original motivation for this effort was for the force_hosts
bug [1]. TL;DR: if you force_hosts in a big cloud, GET
/allocation_candidates either returns you an untenably long list; or you
can `?limit` it, but then there's a possibility that your desired host
won't be represented in the limited list. With ?in_tree, you can specify
the UUID of the host RP you're forcing and get back a very small number
of results (usually one, until you have bandwidth/VGPU/cyborg/etc. in
your provider tree) that are already filtered to the host you want.

in_tree may also help us (partially) resolve the famous "doubled
allocations on resize-to-same-host" bug [2]. But I don't fully
understand that one, so I'll leave it as a teaser :)

[1] https://bugs.launchpad.net/nova/+bug/1777591
[2] https://bugs.launchpad.net/nova/+bug/1790204

-efried



More information about the openstack-discuss mailing list