[ 
https://issues.apache.org/jira/browse/OAK-6106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dürig resolved OAK-6106.
--------------------------------
       Resolution: Not A Bug
    Fix Version/s:     (was: 1.7.0)
                       (was: 1.8)

"Fixed" again by reverting the previous "fix" at 
http://svn.apache.org/viewvc?rev=1792595&view=rev

Turns out that this was a test artefact by trying to use a zero size segment 
cache for which invalidation of segments does not work properly. When reverting 
to the default size of the segment cache {{ManyChildNodesIT}} passes. 

To further manually verify this I used {{ManyChildNodesIT.manyChildNodes()}} to 
add 20M siblings to a node and observed heap usage: the heap stayed stable at 
around 1.5G with an average GC activity of 1%. 

> Excessive memory usage by the cached segment references
> -------------------------------------------------------
>
>                 Key: OAK-6106
>                 URL: https://issues.apache.org/jira/browse/OAK-6106
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>              Labels: perfomance
>         Attachments: OAK-6106.patch
>
>
> The references of a segment to other segments are cached within 
> {{Segment.readReferencedSegments()}}. However caching the {{SegmentId}} 
> instances themselves leads to excessive heap usage as each id also keeps a 
> reference to its underlying segment. 
> I suggest to cache those references as msb, lsb pairs instead and create the 
> {{SegmentId}} instance on the fly when required. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to