Index ¦ Archives ¦ Atom

Placement Update 19-26

Pupdate 19-26. Next week is R-15, two weeks until Train milestone 2.

Most Important

The spec for nested magic merged and significant progress has been made in the implementation. That work is nearly ready to merge (see below), after a few more reviews. Once that happens one of our most important tasks will be experimenting with that code to make sure it fully addresses the uses cases, has proper documentation (including "how do I use this?"), and is properly evaluated for performance and maintainability.

What's Changed

  • The implementation for mappings in allocation candidates had a bug which Eric found and fixed and then I realized there was a tidier way to do it. This then led to the same_subtree work needing to manage less information, because it was already there.

  • The spec for Consumer Types merged and work has started.

  • We're using os-traits 0.15.0 now.

  • There's a framework in place for nested resource provider peformance testing. We need to update the provider topology to reflect real world situations (more on that below).

  • The root_required query parameter on GET /allocation_candidates has been merged as microversion 1.35.

  • I've sent an email announcing my intent to not go to the Shangai (or any other) summit, and what changes that could imply for how Placement does the PTG.


All placement specs have merged. Thanks to everyone for the frequent reviews and quick followups. We've been maintaining some good velocity.

Some non-placement specs are listed in the Other section below.


(Numbers in () are the change since the last pupdate.)

There are 23 (3) stories in the placement group. 0 (0) are untagged. 2 (-2) are bugs. 5 (0) are cleanups. 11 (0) are rfes. 4 (1) are docs.

If you're interested in helping out with placement, those stories are good places to look.


osc-placement is currently behind by 11 microversions.

Main Themes

Nested Magic

These are the features required by modern nested resource provider use cases. We've merged mappings in allocation candidates and root_required. same_subtree and resourceless request groups are what's left and they are in:

Consumer Types

Adding a type to consumers will allow them to be grouped for various purposes, including quota accounting.


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.

As mentioned above, one of the important cleanup tasks that is not yet in progress is updating the gabbit that creates the nested topology that's used in nested performance testing. The topology there is simple, unrealistic, and doesn't sufficiently exercise the several features that may be used during a query that desires a nested response.

Recently I've been seeing that the placement-perfload job is giving results that vary between N and N*2 (usually .5 and 1 seconds) and the difference that I can discern is the type of CPUs being presented by the host (same number of CPUs (8) but different type). This supports something we've been theorizing for a while: when dealing with large result sets we are CPU bound processing the several large result sets returned by the database. Further profiling required…

Another cleanup that needs to start is satisfying the community wide goal of PDF doc generation.

Other Placement

Miscellaneous changes can be found in the usual place.

There are three os-traits changes being discussed. And one os-resource-classes change.

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.


This space left intentionally blank.

© Chris Dent. Built using Pelican. Theme by Giulio Fidente on github.