Bug 720791

Summary: grid data on autodiscovery queue view (#Inventory/Resources/AutodiscoveryQueue) takes unacceptably long to load when there are lots of NEW Resources
Product: [Other] RHQ Project Reporter: Ian Springer <ian.springer>
Component: Core UIAssignee: Ian Springer <ian.springer>
Status: CLOSED WONTFIX QA Contact: Mike Foley <mfoley>
Severity: medium Docs Contact:
Priority: high    
Version: 4.1CC: ccrouch, hrupp, plautrba
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-09-06 16:35:51 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 678340, 717358, 725459, 729848, 730796    

Description Ian Springer 2011-07-12 19:01:15 UTC
For example, in the performance environment, it took 65 seconds for the data to load when there were 1500 NEW Resources (300 platforms and 1200 top-level servers). It appears the reason for this is that the datasource is configured to not do paging (the PageControl page size is set to -1 == unlimited). Instead, we should be initializing the PageControl the same way it is done by RPCDataSource.getPageControl(), i.e.: 

PageControl.getExplicitPageControl(request.getStartRow(), request.getEndRow()
                - request.getStartRow());

Comment 1 Ian Springer 2011-07-12 21:19:54 UTC
Note, once we switch over to paging the data on this view, the recently added Select All and Deselect All buttons may no longer work, because I don't think SmartGWT supports selecting grid records that have not been loaded yet. If this ends up being the case, we'll probably need to replace those buttons with Import All, Ignore All, and Unignore All buttons.

Comment 2 Ian Springer 2011-09-06 16:35:51 UTC
TreeGrids do not support paging of results as ListGrids do. This is documented in the Javadoc for TreeGrid.setDataFetchMode(). As stated there, the alternative is to load child nodes on demand (see the Javadoc for TreeGrid.setLoadDataOnDemand()). So in our case, when the user expands a platform node, the child server nodes would be loaded at that time. I do not think we should pursue switching to on demand loading, since I think it would complicate node selection, where nodes must be loaded before they can be selected, and it would also make expanding platform nodes less snappy.

We can load 250 NEW platforms/servers in around 10s, which isn't terrible, and I don't think most users will have more NEW Resources than that at one time.