Bug 1268844 - product list takes extremely long if a sync plan has many products
Summary: product list takes extremely long if a sync plan has many products
Keywords:
Status: CLOSED DUPLICATE of bug 1253802
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Performance
Version: 6.1.1
Hardware: All
OS: Linux
medium
high
Target Milestone: Unspecified
Assignee: Katello Bug Bin
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-10-05 12:25 UTC by Pavel Moravec
Modified: 2019-08-15 05:36 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-10-08 16:07:58 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Pavel Moravec 2015-10-05 12:25:56 UTC
Description of problem:
Having a synchronization plan with many products associated, listing products takes several minutes. Example: for 20 products, all added into a single sync plan, "hammer product list" takes 4 minutes.

The reason is - per hammer debug logs - caused by the search logic that:
- generates a list of all products
- for each product in the list, it checks presence of sync plan associated with the product
- if the sync plan exists, it lists all products within the sync plan (due to an unknown reason - but _this_ is the culprit of the BZ)

Due to the above, time complexity of product listing is quadratic to the number of products in the (biggest) sync plan.


Version-Release number of selected component (if applicable):
foreman-1.7.2.34-1.el7sat.noarch


How reproducible:
100%


Steps to Reproduce:
1. Enable 20 products
2. count time to "hammer product list"
3. create 20 sync plans, each having 1 product
4. count time to "hammer product list"
5. put all products into one sync plan
6. count time to "hammer product list"


Actual results:
2. and 4. shows very similar times
6. shows extraordinary higher time


Expected results:
2, 4 and 6 to show similar execution times
Time to list products should not depend on number of products in a sync plan


Additional info:
The issue is nicely evident when enabling hammer debugs and grepping for e.g. "label" there in REST API "hammer product list" response. Each product in a sync plan is written there as many times as the number of products in the sync plan is.

Comment 2 Bryan Kearney 2015-10-08 16:07:58 UTC

*** This bug has been marked as a duplicate of bug 1253802 ***


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