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 "Chetan Mehrotra (JIRA)" <ji...@apache.org> on 2014/08/24 11:01:41 UTC

[jira] [Updated] (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:all-tabpanel ]

Chetan Mehrotra updated OAK-2045:
---------------------------------

    Attachment: OAK-2045-test-fix.patch

Updated patch with which the testcase passes. For this I need to drop the segments cache in the SegmentTracker as it was holding a reference to SegmentId

[~alexparvulescu] [~jukkaz] Would Dropping the cache for testcase is fine?

> 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-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)