Timothee Maret created OAK-2968:
-----------------------------------
Summary: Reduce commits memory footprint of ModifiedNodeState
Key: OAK-2968
URL: https://issues.apache.org/jira/browse/OAK-2968
Project: Jackrabbit Oak
Issue Type: Improvement
Components: core
Affects Versions: 1.2.2
Reporter: Timothee Maret
As described in [0] large commits consume a fair amount of memory. With very
large commits, this become problematic as commits may eat up 100GB or more and
thus causing OOME and aborting the commit.
The current representation of commits in memory uses a tree which each node
contains HashMaps for the changed properties as well as sub-nodes.
In cases where the tree is deep but not sparse, most of the children HashMaps
will contain 1 element yet they are created with the default capacity (16) thus
wasting space.
This issue covers a simple way to reduce the memory consumption in this case by
simply creating HashMaps of the required capacity (where applicable) or of
minimal capacity (1) where unknown.
[0] http://permalink.gmane.org/gmane.comp.apache.jackrabbit.oak.devel/8196
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)