Bug 720791 - grid data on autodiscovery queue view (#Inventory/Resources/AutodiscoveryQueue) takes unacceptably long to load when there are lots of NEW Resources
Summary: grid data on autodiscovery queue view (#Inventory/Resources/AutodiscoveryQueu...
Alias: None
Product: RHQ Project
Classification: Other
Component: Core UI
Version: 4.1
Hardware: Unspecified
OS: Unspecified
medium vote
Target Milestone: ---
: ---
Assignee: Ian Springer
QA Contact: Mike Foley
Depends On:
Blocks: jon3 jon30-perf rhq41beta rhq41 rhq41-ui
TreeView+ depends on / blocked
Reported: 2011-07-12 19:01 UTC by Ian Springer
Modified: 2013-08-06 00:39 UTC (History)
3 users (show)

Clone Of:
Last Closed: 2011-09-06 16:35:51 UTC

Attachments (Terms of Use)

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Bugzilla 722548 None None None Never

Internal Trackers: 722548

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.

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