Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
Using offline compaction on a repository with nodes having many direct child node I observed a steady increase of heap usage. This is cause by using a MemoryNodeBuilder in CompactDiff.childNodeAdded(), which causes all those child nodes to be cached in memory.
Changing the line
child = EMPTY_NODE.builder();
to
child = writer.writeNode(EMPTY_NODE).builder();
fixes the problem as the latter returns a SegmentNodeBuilder where the former returns a MemoryNodeBuilder.