[placement] update 19-21
cdent+os at anticdent.org
Fri May 31 13:51:51 UTC 2019
And here we have placement update 19-21.
# Most Important
The [spec for nested magic](https://review.opendev.org/658510) has
been split. The [second half](https://review.opendev.org/662191)
contains the parts which should be relatively straightforward. The
original retains functionality that may be too complex. An email has
been [addressed to
asking for feedback.
Those two specs represent a significant portion of the work planned
this cycle. Getting them reviewed and merged is a good thing to do.
# What's Changed
* A few small refactorings plus the removal of [null provider
protections](https://review.opendev.org/657716) has improved
performance when retrieving 10,000 allocation candidates
significantly: from around 36 seconds to 6 seconds.
* We've chosen to switch to office hours. Ed has started an [email
to determine when they should be.
* Tetsuro's changes to add a RequestGroupSearchContext have merged.
These simplify state management throughout the processing of
individual request groups, and help avoid redundant queries.
* Most of the code for [counting (nova) quota usage from
of the placement API has merged. This allows more expressive
suffixes on granular request groups (e.g., `resources_COMPUTE` in
addition to `resources1`).
Support Consumer Types. This is very close with a few details to
work out on what we're willing and able to query on. It's two
weeks later and still only has reviews from me.
Spec for can_split part of nested magic. We're unlikely to do this
at this point, unless response to the [email asking for
is large and insisting.
Spec for nested magic 1. The easier parts of nested magic:
same_subtree, resource request groups, verbose suffixes (already
merged as 1.33).
Resource provider - request group mapping in allocation candidate.
There's a [WIP](https://review.opendev.org/#/c/662245/) that looks
promising, but we ought to make sure the spec is presenting the
These and other features being considered can be found on the
Some non-placement specs are listed in the Other section below. Note
that nova will be having a spec-review-sprint this coming Tuesday.
if you're doing that, spending a bit of time on the placement specs
would be great too.
(Numbers in () are the change since the last pupdate.)
There are 19 (-1) stories in [the placement
0 (0) are [untagged](https://storyboard.openstack.org/#!/worklist/580).
2 (0) are [bugs](https://storyboard.openstack.org/#!/worklist/574). 4 (-1)
are [cleanups](https://storyboard.openstack.org/#!/worklist/575). 11
(0) are [rfes](https://storyboard.openstack.org/#!/worklist/594).
2 (0) are [docs](https://storyboard.openstack.org/#!/worklist/637).
If you're interested in helping out with placement, those stories
are good places to look.
* Placement related nova [bugs not yet in progress](https://goo.gl/TgiPXb)
on launchpad: 16 (0).
* Placement related nova [in progress bugs](https://goo.gl/vzGGDQ) on
launchpad: 7 (0).
osc-placement is currently behind by 12 microversions. No change
since the last report. _Note_: Based on conversations that we see on
reviews, explicitly trying to chase microversions when patching the
plugin may not be aligned with the point of OSC. We're trying to
make a humane interface to getting stuff done with placement.
Different microversions allow different takes on stuff. It's the
stuff that matters, not the microversion.
Add 'resource provider inventory update' command (that helps with
aggregate allocation ratios).
Add support for 1.22 microversion. (So, for example, what matters
here is that support for forbidden traits is being added. That
it is in microversion 1.22 ought to be incidental (to the user of
Provide a useful message in the case of 500-error
# Main Themes
## Nested Magic
The overview of the features encapsulated by the term "nested magic"
are in a [story](https://storyboard.openstack.org/#!/story/2005575).
There is some in progress code, some of it WIPs to expose issues:
WIP: Allow RequestGroups without resources
Add NUMANetworkFixture for gabbits
Gabbi test cases for can_split
WIP: Implement allocation candidate mappings
## Consumer Types
Adding a type to consumers will allow them to be grouped for various
purposes, including quota accounting. A
[spec](https://review.opendev.org/654799) has started. There are
some questions about request and response details that need to be
resolved, but the overall concept is sound.
We continue to do cleanup work to lay in reasonable foundations for
the nested work above. As a nice bonus, we keep eking out additional
performance gains too.
Optionally run a wsgi profiler when asked.
This has proven useful to find issues. The change has been
unwipped and augumented with some documentation.
Add olso.middleware.cors to conf generator
Modernize CORS config and setup.
Ed Leafe has also been doing some intriguing work on using graph
databases with placement. It's not yet clear if or how it could be
integrated with mainline placement, but there are likely many things
to be learned from the experiment.
# Other Placement
Miscellaneous changes can be found in [the usual
There are several [os-traits
# Other Service Users
New discoveries are added to the end. Merged stuff is removed.
As announced last week, anything that has had no activity in 4 weeks
has been removed (many have been removed).
Nova: spec: support virtual persistent memory
Nova: Pre-filter hosts based on multiattach volume support
Nova: Add flavor to requested_resources in RequestSpec
Blazar: Retry on inventory update conflict
Nova: count quota usage from placement
Nova: nova-manage: heal port allocations
Tempest: Add QoS policies and minimum bandwidth rule client
nova-spec: Allow compute nodes to use DISK_GB from shared storage RP
Cyborg: Placement report
Nova: Spec to pre-filter disabled computes with placement
rpm-packaging: placement service
Delete resource providers for all nodes when deleting compute service
nova fix for: Drop source node allocations if finish_resize fails
nova: WIP: Hey let's support routed networks y'all!
Fixes to keystoneauth to deal with the style of error responses
that placement uses.
starlingx: Add placement chart patch to openstack-helm
helm: WIP: add placement chart
starlingx: Add stx-placement docker image directives files
kolla-ansible: Add a explanatory note for "placement_api_port"
neutron-spec: L3 agent capacity and scheduling
That's a lot of reviewing. Please help out where you can. Your
reward will be brief but sincere moments of joy.
Chris Dent ٩◔̯◔۶ https://anticdent.org/
More information about the openstack-discuss