Bug 1236779

Summary: content host registration indexes host collection information needlessly
Product: Red Hat Satellite Reporter: Justin Sherrill <jsherril>
Component: APIAssignee: Justin Sherrill <jsherril>
Status: CLOSED ERRATA QA Contact: jcallaha
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.1.0CC: bbuckingham, chrobert, cwelton, jcallaha, mmccune, xdmoon
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1237367 (view as bug list) Environment:
Last Closed: 2016-07-27 08:53:19 UTC Type: Bug
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: 1237367    
Attachments:
Description Flags
production.log filtered none

Description Justin Sherrill 2015-06-30 01:36:21 UTC
Description of problem:

Currently content host creation/registration indexes host collections  and activation keys as part of its creation.  This is extremely slow mainly due to the fact that the host collection's index in Elasticsearch stores the names of every content host associated. If there are thousands of systems in the collection this could take a long time.  In addition, it is not using .pluck() to gather the names, its simply calling  group.systems.map(&:name) which would be very slow given a large number of systems



Version-Release number of selected component (if applicable):


How reproducible:

Always


Steps to Reproduce:
1.  Create an activation key and associate it to a host collection
2.  Register 10,000 systems to the host collection,  with a lot of concurrent registrations


Actual results:
Some registrations may take over 2 minutes, even timing out

Expected results:
Registrations should take less than 2 minutes

Additional info:

Comment 6 jcallaha 2015-11-23 18:57:47 UTC
Verified. 

Steps:
1. Included elastic search logging in production.log
2. Created a Host Collection
3. Associated the collection with an activation key
4. Registered multiple hosts with the key

Results:
production.log shows that elastic search no longer makes a call to ::host_collection
See attached file for more details.


  RELEASE: Red Hat Enterprise Linux Server release 7.2 (Maipo)
  FOREMAN: 1.7.2
SATELLITE: 6.1.4
     RUBY: ruby 2.0.0p598 (2014-11-13) [x86_64-linux]
   PUPPET: 3.6.2

Comment 7 jcallaha 2015-11-23 18:58:25 UTC
Created attachment 1097825 [details]
production.log filtered

Comment 10 errata-xmlrpc 2016-07-27 08:53:19 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2016:1500