[placement][ptg] Allocation Partitioning

On Tue, 16 Apr 2019 09:13:47 -0700, Dan Smith <dms at danplanet.com> wrote:
>> Obviously, all consumers are currently Nova instances in placement
>> since (AFAIK) no other services have begun using placement to store
>> allocations.
>
> This is not the case, actually. In Nova, we can have consumers that are
> instances, as well as consumers that are migrations (related to
> instances, but distinct). In order to be able to distinguish between the
> two, a partitioning key (I'd prefer we call this consumer type too) is
> needed. The quota work needs this specifically, so that we can know the
> usage by instances separately from usage that is reserved or pinned by
> an ongoing migration.
>
>>> How urgent is this? Is there anyone available to do the work this
>>> cycle? How damaging is it to punt to U? What details are missing in
>>> the above description?
>
> I guess we defer this question to Melanie, but I think the ability to
> count most of the quota elements we want using placement instead of the
> current method hinges on the ability to distinguish these things.
The latest incarnation of the quota usage from placement work [1] has
counting from placement as opt-in, based on a few reasons explained in
the commit message. And the spec will be amended when/if there is
confirmation the patches will land in this form.
Given the opt-in nature of the quota stuff ^, it could be tempting to
punt it. But my biased opinion is that it would be nice to get working
on it so we can make counting quota usage from placement our default
behavior sooner than later.
Consumer types would enable us to count instances from placement, I
believe. Current code [1] has to count instances from instance mappings
in the API database. Consumer types would also enable us to implement
the quota usage behavior we want during a resize, to take max('instance'
usage, 'migration' usage).
Finally, resource provider partitioning would allow quota usage from
placement to be correct in an environment with multiple nova deployments
sharing a single placement deployment.
If we are able to fill in those gaps, we would be in a good position to
make counting quota usage from placement our default behavior in nova.
-melanie
[1] https://review.openstack.org/#/c/638073/26