You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2014/08/25 11:02:58 UTC

[jira] [Commented] (OAK-2045) Long running JCR session prevent live cleanup in Segment FileStore

    [ https://issues.apache.org/jira/browse/OAK-2045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14108911#comment-14108911 ] 

Michael Dürig commented on OAK-2045:
------------------------------------

While I think the "segment fault approach" is the right, one we should not put the full path in each {{SegmentNodeState}}. This will create a lot of memory overhead as we have seen before in similar settings. Instead we should rely on a mapping from the old to the new node state. With {{CompactionMap}} we already have something along these lines.

> Long running JCR session prevent live cleanup in Segment FileStore
> ------------------------------------------------------------------
>
>                 Key: OAK-2045
>                 URL: https://issues.apache.org/jira/browse/OAK-2045
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segmentmk
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>             Fix For: 1.1
>
>         Attachments: OAK-2045-segment-fault-approach.patch, OAK-2045-test-fix.patch
>
>
> Cleanup operation in SegmentNodeStore detects the un referenced garbage and clean it up. To determine the reference validity it starts with an initial set of SegmentId which have a live java reference. 
> This works fine for simple setup but when Oak repository is used in an application (like Sling) where application code can create long running session (for observation) then such session are bound to old NodeState at time of startup. Such references prevent the cleanup logic to remove older revisions while system is running. Such revisions can only be removed via an offline compaction-> cleanup.
> Need to find out a way where we can _migrate_ such old NodeState references to newer revisions



--
This message was sent by Atlassian JIRA
(v6.2#6252)