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 <[email protected]> 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

