Bug 113671
Summary: | CMS History tab is very slow with a large number of versions | ||
---|---|---|---|
Product: | [Retired] Red Hat Enterprise CMS | Reporter: | Matthew Booth <mbooth> |
Component: | ui | Assignee: | ccm-bugs-list |
Status: | CLOSED WONTFIX | QA Contact: | Jon Orris <jorris> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 5.2 | CC: | bche |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2005-09-29 14:40:44 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: | 108451 |
Description
Matthew Booth
2004-01-16 11:57:39 UTC
>this exact same query, exact same bind variables, along with several >others which run perfectly quickly, is executed once for every >displayed version. can you paste the query trace/plan from ds? >Although I haven't tested it myself, I'm assured that this will still >be a problem in rickshaw. Can you clarify? The entire versioning system was rewritten after 5.2. As requested. Note that the query is executed by the multiple execution of com.arsdigita.cms.ui.history.ItemHistoryTable$PreviewCellRenderer.getComponent(), so it's a UI thing, not a persistence thing. This is why we think it'll still be there in Rickshaw. Execution time included for amusement value :) This DB is hosed. # Execution Time: 1043 ms # Connection ID: 4847195 # Type: execute # Query: select * from (select apm_packages.package_id as package_id, mountPoint__acs_objects.default_domain_class as nt__acs_objcts__dflt_dmn_clss, mountPoint__acs_objects.display_name as mntPnt__acs_objcts__dsply_nm, mountPoint__acs_objects.object_id as mntPnt__acs_objcts__objct_id, mountPoint__acs_objects.object_type as mntPnt__acs_objcts__objct_typ, mountPoint__site_nodes.directory_p as mntPnt__st_nds__drctry_p, mountPoint__site_nodes.name as mountPoint__site_nodes__name, mountPoint__site_nodes.parent_id as mntPnt_prnt__st_nds__prnt_id, mountPoint__site_nodes.pattern_p as mntPnt__st_nds__pttrn_p, mountPoint__site_nodes.url as mountPoint__site_nodes__url from acs_objects mountPoint__acs_objects, apm_packages apm_packages, site_nodes mountPoint__site_nodes where apm_packages.package_id=mountPoint__site_nodes.object_id and mountPoint__site_nodes.node_id=mountPoint__acs_objects.object_id and apm_packages.package_id=?) results order by mntPnt__acs_objcts__objct_id # Bindvars: {1=583} # Query Execution Plan # Exception: null # StackTrace: at com.arsdigita.db.PreparedStatement.logQuery(PreparedStatement.java:123) at com.arsdigita.db.PreparedStatement.doExecute(PreparedStatement.java:215) at com.arsdigita.db.PreparedStatement.execute(PreparedStatement.java:189) at com.arsdigita.persistence.DataStore.fireOperation(DataStore.java:333) at com.arsdigita.persistence.DataStore.fireOperation(DataStore.java:168) at com.arsdigita.persistence.DataQueryImpl.executeQuery(DataQueryImpl.java:1048) at com.arsdigita.persistence.DataAssociationCursorImpl.executeQuery(DataAssociationCursorImpl.java:135) at com.arsdigita.persistence.DataQueryImpl.checkResultSet(DataQueryImpl.java:1024) at com.arsdigita.persistence.DataQueryImpl.next(DataQueryImpl.java:479) at com.arsdigita.kernel.PackageInstance.getDefaultMountPoint(PackageInstance.java:154) at com.arsdigita.cms.ContentSection.getSiteNode(ContentSection.java:270) at com.arsdigita.cms.ContentSection.getPath(ContentSection.java:301) at com.arsdigita.cms.dispatcher.SimpleItemResolver.generatePreviewURL(SimpleItemResolver.java:334) at com.arsdigita.cms.dispatcher.SimpleItemResolver.generateItemURL(SimpleItemResolver.java:435) at com.arsdigita.cms.dispatcher.SimpleItemResolver.generateItemURL(SimpleItemResolver.java:413) at com.arsdigita.cms.ui.history.ItemHistoryTable$PreviewCellRenderer.getComponent(ItemHistoryTable.java:236) at com.arsdigita.bebop.Table.generateXML(Table.java:731) at com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java:243) at com.arsdigita.bebop.TabbedPane.generateXML(TabbedPane.java:444) at com.arsdigita.bebop.SimpleContainer.generateXML(SimpleContainer.java:243) at com.arsdigita.bebop.Page.generateXML(Page.java:640) at com.arsdigita.bebop.Page.buildDocument(Page.java:738) at com.arsdigita.cms.dispatcher.CMSPage$1.excurse(CMSPage.java:223) at com.arsdigita.cms.CMSExcursion.run(CMSExcursion.java:72) at com.arsdigita.cms.dispatcher.CMSPage.dispatch(CMSPage.java:229) at _packages._content_22dsection._www._admin._item__jsp._jspService(_item__jsp.java:59) The com.arsdigita.cms.ui.history package doesn't exist in Rickshaw or Troika. I was the one who deleted it, but it was Justin (and possibly Rafi) who had worked on the UI that replaced this. $ p4 describe -s 32431 Change 32431 by vadim@el-vadimo on 2003/06/16 12:08:48 Changed the visibility of three classes from public to package-scoped. ItemHistoryTable was using one of these classes for debugging. Justin said I could delete the entire //cms/dev/src/com/arsdigita/cms/ui/history/... directory, and so I did. Affected files ... ... //cms/dev/src/com/arsdigita/cms/ui/history/ItemHistory.java#7 delete ... //cms/dev/src/com/arsdigita/cms/ui/history/ItemHistoryTable.java#15 delete ... //cms/dev/src/com/arsdigita/cms/ui/history/package.html#3 delete ... //core-platform/dev/src/com/arsdigita/versioning/DevSupport.java#3 edit ... //core-platform/dev/src/com/arsdigita/versioning/RollbackAdapter.java#2 edit ... //core-platform/dev/src/com/arsdigita/versioning/RollbackListener.java#2 edit Couple of possibilities there: 1. It got refactored and the same bug now exists elsewhere. 2. I'm wrong :) Either way, it's definitely a problem in 5.2 based on above, targeting for 5.2.3 only, not 6.x errata stream until/unless we get definitive data on 6.x add bche to cc:; if we have time we'll see about reproducing on rickshaw FYI, the (new in 6.0) com.arsdigita.cms.ui.revision package contains the class ItemRevisionAdminPane which creates a table containing one row per revision. The cell renderer for this calls the same URL generation code as the old 5.2 UI. |