[ https://issues.apache.org/jira/browse/OAK-3348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14733839#comment-14733839 ]
Michael Dürig edited comment on OAK-3348 at 9/7/15 3:26 PM: ------------------------------------------------------------ [^image.png] Running {{SegmentCompactionIT}} with 8 concurrent writers comparing {{UseCompactionLock == false}} vs. {{UseCompactionLock == true}} shows the former (in red) to be way less efficient in terms of repository growth (GB on Y axis). was (Author: mduerig): [!image.png] Running {{SegmentCompactionIT}} with 8 concurrent writers comparing {{UseCompactionLock == false}} vs. {{UseCompactionLock == true}} shows the former (in red) to be way less efficient in terms of repository growth (GB on Y axis). > Cross gc sessions might introduce references to pre-compacted segments > ---------------------------------------------------------------------- > > Key: OAK-3348 > URL: https://issues.apache.org/jira/browse/OAK-3348 > Project: Jackrabbit Oak > Issue Type: Sub-task > Components: segmentmk > Reporter: Michael Dürig > Assignee: Michael Dürig > Labels: cleanup, compaction, gc > Fix For: 1.3.6 > > Attachments: image.png > > > I suspect that certain write operations during compaction can cause > references from compacted segments to pre-compacted ones. This would > effectively prevent the pre-compacted segments from getting evicted in > subsequent cleanup phases. > The scenario is as follows: > * A session is opened and a lot of content is written to it such that the > update limit is exceeded. This causes the changes to be written to disk. > * Revision gc runs causing a new, compacted root node state to be written to > disk. > * The session saves its changes. This causes rebasing of its changes onto the > current root (the compacted one). At this point any node that has been added > will be added again in the sub-tree rooted at the current root. Such nodes > however might have been written to disk *before* revision gc ran and might > thus be contained in pre-compacted segments. As I suspect the node-add > operation in the rebasing process *not* to create a deep copy of such nodes > but to rather create a *reference* to them, a reference to a pre-compacted > segment is introduced here. > Going forward we need to validate above hypothesis, assess its impact if > necessary come up with a solution. -- This message was sent by Atlassian JIRA (v6.3.4#6332)