[openstack-dev] [all] [nova] [placement] placement below or beside compute after extraction?
Matt Riedemann
mriedemos at gmail.com
Tue Aug 21 11:50:56 UTC 2018
On 8/21/2018 4:28 AM, Chris Dent wrote:
> Since we're airing things out (which I think is a good thing, at
> least in the long run), I'll add to this.
>
> I think that's a pretty good example of where I did express some
> resistance, especially since were it to come up again, I still would
> express some (see below). But let's place that resistance in some
> context.
>
> In the epic irc discussion you mentioned that one fear is that I
> might want to change the handling of microversions [2] because I'm
> somewhat famously ambivalent about them. That's correct, I am.
> However, I would hope that the fact that placement has one of the
> easier and more flexible microversions systems around (written by
> me) and I went to the trouble to extract it to a library [3] and I'm
> the author of the latest revision on how to microversion [4] is
> powerful evidence that once consensus is reached I will do my utmost
> to make things align with our shared plans and goals.
Regarding microversions I was mostly thinking of the various times I've
been asked in the placement channel if something warrants a microversion
or if we can just bug fix it in, like microversion 1.26. I then
generally feel like I need to be defensive when I say, "yes it's a
behavior change in the API so it should." That makes me question how
stringent others would be about upholding interoperability concerns if I
weren't around. Maybe I'm admittedly too stringent and opt to be
conservative at times, but I do make exceptions, e.g.:
https://review.openstack.org/#/c/583907/
Suffice it to say I realize "does this need a microversion?" is not
always an easy question to answer, and I appreciate that you, jaypipes
and efried at least ask me for my input on the matter. I have obviously
failed to appreciate that.
>
> So, with the notion of allocation or consumer types (both have been
> discussed): If we start from the position that I've been with
> placement from very early on and am cognizant of its several goals
> and at the same time also aware of its limited "human resources" it
> seems normal and appropriate to me that at least some members of the
> group responsible for making it must make sure that we work to
> choose the right things (of several choices) to do, in part by by
> rigorously questioning additional features when existing planned
> features are not yet done. In this case we might ask: is it right to
> focus on incompletely thought out consumer type management for the
> eventual support of quota handling (and other introspection) when we
> haven't yet satisfied what has been described by some downstream
> people (eglynn is example, to be specific) as job 1: getting shared
> disk working correctly (which we still haven't managed across the
> combined picture of nova and placement)?
If the question is, should nova be talking about solving one problem
while there are still more unsolved problems? Ideally we should not, but
that's not the nature of probably anything in openstack, at least in a
project as big as nova. If it were, the compute API would be 100%
compatible with volume-backed instances, and shelve wouldn't be such a
dumpster fire. :) But we don't live in an ideal situation with infinite
time and resources nor the luxury of forethought at all times so we must
move forward with *something* lest we get nothing done.
>
> From my perspective questioning additional features, so that they
> are well proven, is simply part of the job and we all should be
> doing it. If we are never hitting questions and disagreements we are
> almost certainly running blind and our results will be less good.
I totally agree, and realize there can be an echo chamber within nova
which can be less than productive. As I noted earlier, I'm not sure the
entire consumer types for counting qoutas solution is fully thought out
at this point, so questioning it is appropriate until that's happened.
>
> Once we've hashed things out, I'll help make what we've chosen
> happen. The evidence of this is everywhere. Consider this: I've
> known (at least subconsciously) about the big reveal in yesterday's
> IRC discussion for a long time, but I keep working to make nova,
> placement and OpenStack better. Day in, day out, in the face of what
> is perhaps the biggest insult to my professional integrity that I've
> ever experienced. If this were a different time some portion of "we"
> would need to do pistols at dawn, but that's dumb. I just want to
> get on with making stuff. The right stuff. Please don't question my
> commitment, but do question my designs and plans and help me make
> them the best they can be.
>
> Elephant alert, to keep this healthy full exposure rolling: The kind
> of questioning and "proving" described above happens all the time in
> Nova with specs and other proposals that are presented. We ask
> proposers to demonstrate that their ideas are necessary and sound,
> and if they are not _or_ we don't have time, we say "no" or "later".
> This is good and correct and part of the job and helps make nova the
> best it can be given the many constraints it experiences. As far as
> I can tell the main differences between me asking questions about
> proposed placement features when they are presented by nova cores
> and the more general nova-spec situation is who is being subjected
> to the questions and by whom.
Yup, again I agree with you. I've had more than one reply written in
this thread where after re-reading it, realized I was being hypocritical
and deleted my reply (I'm amazed I've had the restraint at times to
re-read my replies before sending, I'm usually putting my foot in my
mouth). For example, nova wants consumer types in placement and there
was pushback on that as convoluting an otherwise minimal consumers API.
At the same time, nova is actively rejecting people every release that
want to pass volume type through the compute API during boot from
volume. Our reason being, "you can already achieve this by calling
cinder, and our API is already terribly complex, so let's not add fuel
to the fire." So I realize it goes both ways and I'm trying to keep that
in mind when replying on this thread.
At this point, I think we're at:
1. Should placement be extracted into it's own git repo in Stein while
nova still has known major issues which will have dependencies on
placement changes, mainly modeling affinity?
2. If we extract, does it go under compute governance or a new project
with a new PTL.
As I've said, I personally believe that unless we have concrete plans
for the big items in #1, we shouldn't hold up the extraction. We said in
Dublin we wouldn't extract to a new git repo in Rocky but we'd work up
to that point so we could do it in Stein, so this shouldn't surprise
anyone. The actual code extraction and re-packaging and all that is
going to be the biggest technical issue with all of this, and will
likely take all of stein to complete it after all the bugs are shaken out.
For #2, I think for now, in the interim, while we deal with the
technical headache of the code extraction itself, it's best to leave the
new repo under compute governance so the existing team is intact and we
don't conflate the people issue with the technical issue at the same
time. Get the hard technical part done first, and then we can move it
out of compute governance. Once it's in its own git repo, we can change
the core team as needed but I think it should be initialized with
existing nova-core.
I'm only speaking for myself here. Others on the nova core team have
their own thoughts (Dan, Jay and Mel have all mentioned theirs). The
rest of the core team probably doesn't even care either way. Except Vek.
Vek cares *deeply*.
--
Thanks,
Matt
More information about the OpenStack-dev
mailing list