Bug 736517 - perf: Resource tree takes unacceptably long to load for a platform with lots of descendant Resources
Summary: perf: Resource tree takes unacceptably long to load for a platform with lots ...
Alias: None
Product: RHQ Project
Classification: Other
Component: Core UI
Version: 4.1
Hardware: Unspecified
OS: Unspecified
urgent vote
Target Milestone: ---
: ---
Assignee: Ian Springer
QA Contact: Mike Foley
Depends On:
Blocks: jon3 jon30-perf rhq-gui-timeouts
TreeView+ depends on / blocked
Reported: 2011-09-07 21:50 UTC by Ian Springer
Modified: 2013-08-06 00:40 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2012-02-07 19:21:06 UTC

Attachments (Terms of Use)

Description Ian Springer 2011-09-07 21:50:06 UTC
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-08 00:10:30 UTC
CORRECTION: s/getResourceLineageAndDescendants/getResourceLineageAndSiblings/

Comment 2 Ian Springer 2011-09-08 00:28:14 UTC
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 15:44:18 UTC
[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 14:13:45 UTC
marking verified with 10/3/2011 daily build

Comment 5 Mike Foley 2012-02-07 19:21:06 UTC
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.