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.
CORRECTION: s/getResourceLineageAndDescendants/getResourceLineageAndSiblings/
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.
[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.
marking verified with 10/3/2011 daily build
changing status of VERIFIED BZs for JON 2.4.2 and JON 3.0 to CLOSED/CURRENTRELEASE