yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #76677
[Bug 1742467] Re: Compute unnecessarily gets resource provider aggregates during every update_available_resource run
Reviewed: https://review.openstack.org/615677
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=deef31729bd54f3747b7adba4132f148559c2242
Submitter: Zuul
Branch: master
commit deef31729bd54f3747b7adba4132f148559c2242
Author: Eric Fried <efried@xxxxxxxxxx>
Date: Mon Nov 5 16:04:10 2018 -0600
Reduce calls to placement from _ensure
Prior to this patch, the report client's update_from_provider_tree
method would, upon failure of any placement API call, invalidate the
cache *just* for the failing provider (and any descendants) and attempt
to continue operating on any other providers in the tree.
With this patch, we instead invalidate the tree around the failing
provider and fail right away.
In real life, since we don't yet have any implementations of nested,
this would have been effectively a null change.
Except: this allows us to resolve a TODO whereby we would *always*
_ensure_resource_provider (including a call to GET
/resource_providers?in_tree=$compute_rp) on every periodic. Now we can
optimize that out.
This should reduce the number of calls to placement per RT periodic to
zero in steady state when [compute]resource_provider_association_refresh
is zero.
Closes-Bug: #1742467
Change-Id: Ieeaad9783e0ff93377fbc6c7932618d2fac8946a
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1742467
Title:
Compute unnecessarily gets resource provider aggregates during every
update_available_resource run
Status in OpenStack Compute (nova):
Fix Released
Status in OpenStack Compute (nova) ocata series:
New
Status in OpenStack Compute (nova) pike series:
New
Bug description:
This was provided by Kris Lindgren from GoDaddy on his Pike deployment
that is now running with Placement.
He noted that for every update_available_resource periodic task run,
these are the calls to Placement if inventory didn't change:
https://paste.ubuntu.com/26356656/
So there are 5 GET requests in there.
In this run, there isn't a call to get the resource provider itself
because the SchedulerReportClient has it cached in the
_resource_providers dict.
But it still gets aggregates for the provider twice because it always
wants to be up to date.
The aggregates are put in the _provider_aggregate_map, however, that
code is never used by anything since nova doesn't yet support resource
provider aggregates since those are needed for shared resource
providers, like a shared storage pool.
Until nova supports shared providers, we likely should just comment
the _provider_aggregate_map code out if nothing is using it to avoid
the extra HTTP requests to Placement every minute (the default
periodic task interval).
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1742467/+subscriptions
References