New branch 'jay-sync' available with the following commits:
commit 2ad00b7cb9dd80a6debb7b25084601407d21e0a0
Author: Jay Shaughnessy <jshaughn(a)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
Show replies by date