Bug 736517 - perf: Resource tree takes unacceptably long to load for a platform with lots of descendant Resources
perf: Resource tree takes unacceptably long to load for a platform with lots ...
Product: RHQ Project
Classification: Other
Component: Core UI (Show other bugs)
Unspecified Unspecified
urgent Severity urgent (vote)
: ---
: ---
Assigned To: Ian Springer
Mike Foley
Depends On:
Blocks: jon3 jon30-perf rhq-gui-timeouts
  Show dependency treegraph
Reported: 2011-09-07 17:50 EDT by Ian Springer
Modified: 2013-08-05 20:40 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2012-02-07 14:21:06 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Ian Springer 2011-09-07 17:50:06 EDT
I have a platform with 15 child servers, including 10 perftest plugin servers. The 10 perftest plugin servers each have 100 child services. The RPC call to resourceService.getResourceLineageAndDescendants() which loads the data for the Resource tree takes 33-45 seconds to load, which is unacceptably long. There are a total of 1370 Resources under the platform, although not all of them should need to be loaded in order to initially render the Resource tree...

In case its relevant, the perftest services are members of a sub-subcategory.
Comment 1 Ian Springer 2011-09-07 20:10:30 EDT
CORRECTION: s/getResourceLineageAndDescendants/getResourceLineageAndSiblings/
Comment 2 Ian Springer 2011-09-07 20:28:14 EDT
I think the main cause of this issue is that ResourceManagerBean.getResourceLineageAndSiblings() is including the grandchildren of each member of the Resource's lineage in the list of ResourceComposites it returns. This is not necessary, because the grandchildren will not be visible nodes in the initial Resource tree (with the exception of grandchildren that are members of the lineage). Only children of lineage members are visible in the initial tree, and so only they should need to be included in the results.

I'm actually the one responsible for adding the loading of grandchildren. I added it in the early days of coregui to get past some issue (I forget the details of the issue) when I was fixing various bugs in the Resource tree. I had intended to go back and get things working without loading grandchildren but forgot to do so.
Comment 3 Ian Springer 2011-09-27 11:44:18 EDT
[master 400ac0d] removes the unnecessary loading of grandchildren Resources in ResourceManagerBean.getResourceLineageAndSiblings() and further optimizes performance of that method. The tree for the same platform described in this bug's Description now loads in 1-2 seconds for a user with the INVENTORY_MANAGER permission and 2-3 seconds for an unprivileged user.
Comment 4 Mike Foley 2011-10-03 10:13:45 EDT
marking verified with 10/3/2011 daily build
Comment 5 Mike Foley 2012-02-07 14:21:06 EST
changing status of VERIFIED BZs for JON 2.4.2 and JON 3.0 to CLOSED/CURRENTRELEASE

Note You need to log in before you can comment on or make changes to this bug.