Red Hat Bugzilla – Bug 1268844
product list takes extremely long if a sync plan has many products
Last modified: 2015-10-08 12:07:58 EDT
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):
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"
2. and 4. shows very similar times
6. shows extraordinary higher time
2, 4 and 6 to show similar execution times
Time to list products should not depend on number of products in a sync plan
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.
*** This bug has been marked as a duplicate of bug 1253802 ***