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 "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2016/04/05 14:54:25 UTC

[jira] [Commented] (OAK-3287) DocumentMK revision GC

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

Marcel Reutegger commented on OAK-3287:
---------------------------------------

The implementation on the github branches for OAK-3711, OAK-3712 and OAK-3716 are now nearly complete and a combination of the two approaches. OAK-3712 contains the main part of the implementation and introduces a {{NodeDocumentSweeper}}. Each cluster node runs a sweeper on its own changes, similar to the existing background split. The sweeper periodically scans the last modified documents and 

- removes changes of stale commits. These are uncommitted changes with a revision less than the current head revision.
- rewrites merged branch commits. After the rewrite, these commits look like regular non-branch commits and do not require a lookup on the commit root document to resolve the merge revision.

With this approach the majority of changes from regular non-branch commits are not touched anymore. Only merged branch commits need to be rewritten.
The sweeper also maintains a new {{_sweepRev}} on the root document per cluster node. These revisions are the elements of a {{RevisionVector}} and all changes older than this revision vector can be considered committed. The sweeper currently uses the {{MissingLastRevSeeker}} to retrieve the most recently modified documents. This should be further decoupled, because the sweeper also works correctly with documents off a MongoDB secondary, which is delayed.

There is still an open issue with split documents created by older Oak versions. These may contain branch commits, which are not re-written and cannot be assumed committed as is.

> DocumentMK revision GC
> ----------------------
>
>                 Key: OAK-3287
>                 URL: https://issues.apache.org/jira/browse/OAK-3287
>             Project: Jackrabbit Oak
>          Issue Type: Epic
>          Components: documentmk, mongomk, rdbmk
>            Reporter: Michael Marth
>            Assignee: Marcel Reutegger
>             Fix For: 1.6
>
>
> Collector for various tasks on implementing DocMK revision GC



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)