OpenStack resource provider inventory allocation service
Go to file
Chris Dent aecd0f3497 Avoid duplicate ProviderSummary in _merge_candidates
In testing with the nested-perfload topology containing 7000
providers, _merge_candidates had been returning 21000 ProviderSummary
objects which were not trimmed until serialization processing in
handlers/allocation_candidate.py. That situation has been present
at least since when we added same_subtree [1] so is not simply
because of the addition of rw_ctx.summaries_by_id [2].

Teasing out fixing this exposed a lot of opportunities for
shrinking the amount of data being inspected and processed.

In no particular order the changes are:

* Return set() from _alloc_candidates_single_provider and
  _alloc_candidates_multiple_providers instead of list. It doesn't need
  to be a list and the cast to list costs.

* Because we have rw_ctx.summaries_by_id we don't need to return
  summaries from _get_by_one_request, they're in the rw_ctx.

* The candidates provided to _merge_candidates is no longer a dict of
  tuples of allocatation requests and summaries (_all_ the summaries).
  It's just a dict of allocation requests.

* At the end of _merge_candidates we need to winnow the contents of
  rw_ctx.summaries_by_id to only those that still matter.

[1] I7fdeac24606359d37f1a7405d22c5797840e1a9e
[2] I43ae1118421366336b4e96738c2981e07caebec8
Change-Id: Ibccaed40f1eac9c244cf70654f6be1d72f7a6054
2019-08-16 10:44:37 +01:00
api-ref Update api-ref to point to API-SIG microversion spec 2019-07-23 11:33:05 +01:00
doc Blacklist sphinx 2.1.0 (autodoc bug) 2019-07-31 16:42:51 +08:00
etc/placement Add OsProfiler config options to generated reference 2019-06-27 09:37:56 +02:00
gate Add apache benchmark (ab) to end of perfload jobs 2019-08-06 09:18:44 +01:00
placement Avoid duplicate ProviderSummary in _merge_candidates 2019-08-16 10:44:37 +01:00
placement_db_tools Package db migration scripts in placement pypi dist 2019-05-07 00:08:39 +00:00
playbooks Move non-nested perfload shell commands to script 2019-06-20 12:38:08 +01:00
releasenotes Follow up fix for same_subtree documentation 2019-07-09 10:23:54 +00:00
tools Package db migration scripts in placement pypi dist 2019-05-07 00:08:39 +00:00
.coveragerc Use both unit and functional for coverage testing 2018-09-14 13:30:14 -06:00
.gitignore Clean up .gitignore file 2018-10-16 00:14:36 +09:00
.gitreview OpenDev Migration Patch 2019-04-19 19:41:22 +00:00
.stestr.conf Put stestr group_regex in .stestr.conf 2018-09-14 13:30:14 -06:00
.zuul.yaml Add apache benchmark (ab) to end of perfload jobs 2019-08-06 09:18:44 +01:00
babel.cfg Get rid of distutils.extra. 2012-02-08 19:30:39 -08:00
bindep.txt Merge "Bindep does not catch missing libpcre3-dev on Ubuntu" 2018-02-14 07:31:09 +00:00
CONTRIBUTING.rst Update CONTRIBUTING and HACKING 2019-03-11 18:28:36 +00:00
LICENSE initial commit 2010-05-27 23:05:26 -07:00
lower-constraints.txt Use expanding bindparam in provider_ids_from_rp_ids in_ 2019-08-02 15:25:30 +01:00
README.rst Update api-ref location 2019-07-22 19:17:01 +02:00
requirements.txt Use expanding bindparam in provider_ids_from_rp_ids in_ 2019-08-02 15:25:30 +01:00
setup.cfg Add Python 3 Train unit tests 2019-07-10 21:09:52 +00:00
setup.py Updated from global requirements 2017-03-02 11:50:48 +00:00
test-requirements.txt Make placement testing easier on osx 2019-07-17 13:24:44 +01:00
tox.ini Update api-ref location 2019-07-22 19:17:01 +02:00

If you are viewing this README on GitHub, please be aware that placement development happens on OpenStack git and OpenStack gerrit.

Team and repository tags

image

OpenStack Placement

OpenStack Placement provides an HTTP service for managing, selecting, and claiming providers of classes of inventory representing available resources in a cloud.

API

To learn how to use Placement's API, consult the documentation available online at:

For more information on OpenStack APIs, SDKs and CLIs in general, refer to:

Operators

To learn how to deploy and configure OpenStack Placement, consult the documentation available online at:

In the unfortunate event that bugs are discovered, they should be reported to the appropriate bug tracker. If you obtained the software from a 3rd party operating system vendor, it is often wise to use their own bug tracker for reporting problems. In all other cases use the master OpenStack bug tracker, available at:

Developers

For information on how to contribute to Placement, please see the contents of CONTRIBUTING.rst.

Further developer focused documentation is available at: