← Back to team overview

yahoo-eng-team team mailing list archive

[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