** Also affects: nova/rocky
   Importance: Undecided
       Status: New

** No longer affects: nova

** Description changed:

  Description
  ===========
- In rocky cycle, 'GET /allocation_candidates' started to be aware of nested 
providers from microversion 1.29.  
+ In rocky cycle, 'GET /allocation_candidates' started to be aware of nested 
providers from microversion 1.29.
  From microversion 1.29, it can join allocations from resource providers in 
the same tree.
  
  To keep the behavior of microversion before 1.29, it filters nested providers 
[1]
  This function "_exclude_nested_providers()" is skipped on microversion >= 
1.29 but is heavy on microversion < 1.29.
  This is executed and still heavy even if there is no nested providers in the 
environment when microversion < 1.29.
  
  [1]
  
https://github.com/openstack/placement/blob/e69366675a2ee4532ae3039104b1a5ee8d775083/placement/handlers/allocation_candidate.py#L207-L238
  
  Steps to reproduce
  ==================
  
  * Create about 6000 resource providers with some inventory and aggregates 
(using placeload [2])
  * Query "GET 
/allocation_candidates?resources=VCPU:1,DISK_GB:10,MEMORY_MB:256&member_of=${SOME_AGGREGATE}&required=${SOME_TRAIT}"
 with microversion 1.29 and 1.25
  
  [2] https://github.com/cdent/placeload/tree/master/placeload
  
  Expected (Ideal) result
  ==================
  
  * No performance difference with microversion 1.25 <-> 1.29
  
- Actual (Ideal) result
+ Actual result
  ==================
  
  * __15.995s__ for microversion 1.25
  * __5.541s__ for microversion 1.29
  
  with profiler enabled,
  
  * __32.219s__ for microversion 1.25 - Note that 24.1s(75%) is consumed in the 
"_exclude_nested_providers()"
  * __7.871s__ for microversion 1.29 - Note that this is roughly 32.219s - 
24.1s...

-- 
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/1828937

Title:
  Getting allocation candidates is slow with "placement microversion <
  1.29" from rocky release

Status in OpenStack Compute (nova) rocky series:
  New

Bug description:
  Description
  ===========
  In rocky cycle, 'GET /allocation_candidates' started to be aware of nested 
providers from microversion 1.29.
  From microversion 1.29, it can join allocations from resource providers in 
the same tree.

  To keep the behavior of microversion before 1.29, it filters nested providers 
[1]
  This function "_exclude_nested_providers()" is skipped on microversion >= 
1.29 but is heavy on microversion < 1.29.
  This is executed and still heavy even if there is no nested providers in the 
environment when microversion < 1.29.

  [1]
  
https://github.com/openstack/placement/blob/e69366675a2ee4532ae3039104b1a5ee8d775083/placement/handlers/allocation_candidate.py#L207-L238

  Steps to reproduce
  ==================

  * Create about 6000 resource providers with some inventory and aggregates 
(using placeload [2])
  * Query "GET 
/allocation_candidates?resources=VCPU:1,DISK_GB:10,MEMORY_MB:256&member_of=${SOME_AGGREGATE}&required=${SOME_TRAIT}"
 with microversion 1.29 and 1.25

  [2] https://github.com/cdent/placeload/tree/master/placeload

  Expected (Ideal) result
  ==================

  * No performance difference with microversion 1.25 <-> 1.29

  Actual result
  ==================

  * __15.995s__ for microversion 1.25
  * __5.541s__ for microversion 1.29

  with profiler enabled,

  * __32.219s__ for microversion 1.25 - Note that 24.1s(75%) is consumed in the 
"_exclude_nested_providers()"
  * __7.871s__ for microversion 1.29 - Note that this is roughly 32.219s - 
24.1s...

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/rocky/+bug/1828937/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to