jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Created] (OAK-3348) Cross gc sessions might introduce references to pre-compacted segments
Date Fri, 04 Sep 2015 08:32:46 GMT
Michael Dürig created OAK-3348:

             Summary: 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

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

View raw message