New branch 'jay-sync' available with the following commits: commit 2ad00b7cb9dd80a6debb7b25084601407d21e0a0 Author: Jay Shaughnessy jshaughn@redhat.com Date: Fri Dec 13 17:21:40 2013 -0500
[1023451] [perf] Large retained heap during inventory report merge (causing OOMs) Note - this is related work, not necessarily a solution to this problem. One factor in the memory consumption of mergeInventoryReport is that we return the entire resource hierarchy for the platform. These hierarchy is comprised of lightweight (ResourceSyncInfo) objects, but still, for a large inventory this can be large. Moreover, the agent must receive the same structure into memory.
This commit aims to reduce memory consumption at the expense of "chunking" the hierarchy by top-level-server. The general flow is that mergeInventoryReport now returns the new PlatformSyncInfo, which is just the platform sync info and the list of top level servers. The agent then performs the sync in pieces, calling back to the server for each top level server's ResourceSyncInfo.
notes: - New abstract SyncInfo pulled down from ResourceSyncInfo and new superclass PlatformSyncInfo. These are both now used in the sync process. - ResourceSyncInfo made more lightweight by replacing parentResource with parentId. - Had to change test mocks to handle the new strategy - add mock support for getResourceSyncInfo service - enhance AbstractIgnoreTypesInventoryManagerBaseTest to actually assign resource ids to the simulated server inventory - Fix a few PC itest issues - increase waitForInventory max time, it wasn't long enough - add missing waitForInventory in a couple of places
rhq-commits@lists.fedorahosted.org