Pupdate 19-30 is brought to you by the letter P for Performance.
The main things on the Placement radar are implementing Consumer Types and cleanups, performance analysis, and documentation related to nested resource providers.
The ProviderIds namedtuple was removed. This is the first in a series of performance optimizations discovered as part of the analysis described below in the Cleanup section.
(Numbers in () are the change since the last pupdate.)
If you're interested in helping out with placement, those stories are good places to look.
Placement related nova bugs not yet in progress on launchpad: 17 (0).
Placement related nova in progress bugs on launchpad: 4 (0).
osc-placement is currently behind by 12 microversions.
https://review.opendev.org/666542 Add support for multiple member_of. There's been some useful discussion about how to achieve this, and a consensus has emerged on how to get the best results.
https://review.opendev.org/640898 Adds a new '--amend' option which can update resource provider inventory without requiring the user to pass a full replacement for inventory
Adding a type to consumers will allow them to be grouped for various purposes, including quota accounting.
- https://review.opendev.org/#/q/topic:bp/support-consumer-types A WIP, as microversion 1.37, has started.
Cleanup is an overarching theme related to improving documentation, performance and the maintainability of the code. The changes we are making this cycle are fairly complex to use and are fairly complex to write, so it is good that we're going to have plenty of time to clean and clarify all these things.
I started some performance analysis this week. Initially I started
working with placement master in a
but as I started making changes I moved back to
What I discovered was that there is quite a bit of redundancy in the
code in the
objects package that I was able to remove. For
example we were creating at least twice as many ProviderSummary
objects than required in a situation with multiple request groups.
It's likely there would have been more duplicates with more request
groups. That's improved in this
change, which is at the end of a
stack of several other like-minded improvements.
The improvements in that stack will not be obvious until the more complex nested topology is generally available. My analysis was based on that topology.
Not to put too fine a point on it, but this kind of incremental analysis and improvement is something I think we (the we that is the community of OpenStack) should be doing far more often. It is incredibly revealing about how the system works and opportunities for making the code both work better and be easier to maintain.
One outcome of this work will be something like a Deployment Considerations document to help people choose how to tweak their placement deployment to match their needs. The simple answer is use more web servers and more database servers, but that's often very wasteful.
Miscellaneous changes can be found in the usual place.
Other Service Users
New discoveries are added to the end. Merged stuff is removed. Anything that has had no activity in 4 weeks has been removed.
https://review.openstack.org/#/q/topic:bug/1819923 Nova: nova-manage: heal port allocations
https://review.opendev.org/659233 Cyborg: Placement report
https://review.opendev.org/662229 helm: add placement chart
https://review.opendev.org/634551 libvirt: report pmem namespaces resources by provider tree
https://review.opendev.org/660852 Nova: Remove PlacementAPIConnectFailure handling from AggregateAPI
https://review.opendev.org/670112 Nova: WIP: Add a placement audit command
https://review.opendev.org/586960 zun: [WIP] Use placement for unified resource management
https://review.opendev.org/671478 Kayobe: Build placement images by default
https://review.opendev.org/671312 blazar: Fix placement operations in multi-region deployments
https://review.opendev.org/671793 Nova: libvirt: Start reporting PCPU inventory to placement
https://review.opendev.org/#/q/topic:bp/support-move-ops-with-qos-ports Nova: support move ops with qos ports
https://review.opendev.org/664689 Nova: get_ksa_adapter: nix by-service-type confgrp hack
https://review.opendev.org/666202 Blazar: Create placement client for each request
https://review.opendev.org/667952 nova: Support filtering of hosts by forbidden aggregates
https://review.opendev.org/669079 blazar: Send global_request_id for tracing calls
https://review.opendev.org/668252 Nova: Update HostState.*_allocation_ratio earlier
https://review.opendev.org/670696 tempest: Add placement API methods for testing routed provider nets
https://review.opendev.org/672678 openstack-helm: Build placement in OSH-images
https://review.opendev.org/674129 Correct global_request_id sent to Placement
I started working with around approximately 20,000 providers this week. Only 980,000 to go.