[
https://issues.apache.org/jira/browse/OAK-1791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14275048#comment-14275048
]
Marcel Reutegger commented on OAK-1791:
---------------------------------------
Remaining work done in trunk http://svn.apache.org/r1651323
Disconnecting split documents is now done by the garbage collector process.
References to split documents from the main document are not immediately
removed, but queued for removal by the background split process on each of the
cluster nodes. This is required to avoid concurrent modification of references
to split documents on the main document. It may happen that a background split
moves references to an intermediate split document while the garbage collector
process wants to remove those references. To avoid the concurrent modification,
the garbage collector process will put the references into a newly introduced
map named {{_stalePrev}}. The next background split for this document will then
remove the reference. Meanwhile the NodeDocument will ignore entries in
{{_prev}} that are present in {{_stalePrev}}.
References from intermediate split documents are immediately removed. This is
possible because intermediate split documents are created once by the
background split and not modified anymore later by the split process.
> Clean up dangling references to previous documents
> --------------------------------------------------
>
> Key: OAK-1791
> URL: https://issues.apache.org/jira/browse/OAK-1791
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core, mongomk
> Affects Versions: 1.0
> Reporter: Marcel Reutegger
> Assignee: Marcel Reutegger
> Fix For: 1.2, 1.0.10
>
>
> The DocumentNodeStore revision garbage collection code currently simply
> deletes previous documents that are not needed anymore, but does not clean up
> references to them from either the main or intermediate document. After a
> while this results in WARN messages in the logs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)