[openstack-dev] [placement][nova] Decision time on granular request groups for like resources

Chris Dent cdent+os at anticdent.org
Thu Apr 19 09:28:14 UTC 2018


On Wed, 18 Apr 2018, Eric Fried wrote:

>> I have a feeling we're just going to go back and forth on this, as we
>> have for weeks now, and not reach any conclusion that is satisfactory to
>> everyone. And we'll delay, yet again, getting functionality into this
>> release that serves 90% of use cases because we are obsessing over the
>> 0.01% of use cases that may pop up later.
>
> So I vote that, for the Rocky iteration of the granular spec, we add a
> single `proximity={isolate|any}` qparam, required when any numbered
> request groups are specified.  I believe this allows us to satisfy the
> two NUMA use cases we care most about: "forced sharding" and "any fit".
> And as you demonstrated, it leaves the way open for finer-grained and
> more powerful semantics to be added in the future.

The three most important priorities for me (highest last) are:

* being able to move forward quickly so we can learn from our
   mistakes sooner than later and not cause backlogs in our progress

* the common behavior should require the least syntax. Since (I
   hope) the common behavior has nothing to do with nested, and the
   syntax under discussion only comes into play on granular requests,
   it's not really germane here. But it bears repeating that we are
   outside the domain of useful stuff for most cloudy people, here.

* the API needs to have an easy mental process for translating from
   human utterances to a set of query parameters and vice versa. This
   is why I tend to prefer a single query parameter (like either of
   the two original proposals in this thread, or 'proximity) to
   encoded parameters (like 'resources1{s,d}') or taking the leap
   into a complex JSON query structure in a POST.

One of the advantages of microversions is that we can easily change
it later if we want. It can mean that the underlying data query code
may need to branch more, but that's the breaks, and isn't really
that big of a deal if we're maintaining our tests well.

It is more than likely that we will eventually have to move to POST
at some point (and at that point it wouldn't be completely wrong to
investigate graphql). But we should put that off and let ourselves
progress there in a stepwise fashion.

Let's take one or two use cases, solve for them in what we hope is a
flexible fashion, and move on. If we get it wrong we can fix it. And
it'll be okay. Let's not maintain this painful illusion that we're
writing stone tablets.

-- 
Chris Dent                       ٩◔̯◔۶           https://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the OpenStack-dev mailing list