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 2013/09/20 16:47:51 UTC
[jira] [Comment Edited] (OAK-659) Move purge logic for transient
changes below the NodeBuilder interface
[ https://issues.apache.org/jira/browse/OAK-659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13772908#comment-13772908 ]
Michael Dürig edited comment on OAK-659 at 9/20/13 2:45 PM:
------------------------------------------------------------
Initial fix at http://svn.apache.org/r1524957
This still needs some fine tuning:
* --{{MutableTree#moveTo}} and {{MutableTree#copyTo}} fall back to using a {{MemoryNodeBuilder}} instead of a {{KernelNodeBuilder}} when operating on a {{SecureNodeState}}. {{MemoryNodeBuilder}} does not have optimised handling for move/copy operations.-- Fixed at http://svn.apache.org/r1525016
* {{KernelNodeState.builder()}} returns a {{MemoryNodeBuilder}} (instead of a {{KernelNodeBuilder}} when the current state is on a branch. This is a workaround to avoid branching form a branch, which is not supported. The effect of this is that commit hooks currently run against a {{MemoryNodeBuilder}}, which limits the amount of changes commit hooks can add.
* {{SegmentNodeStore.merge()}} currently has no implementation of its own but falls back to the default implementation of its super class.
I left FIXMEs and TODOs in the code accordingly.
was (Author: mduerig):
Initial fix at http://svn.apache.org/r1524957
This still needs some fine tuning:
* {{MutableTree#moveTo}} and {{MutableTree#copyTo}} fall back to using a {{MemoryNodeBuilder}} instead of a {{KernelNodeBuilder}} when operating on a {{SecureNodeState}}. {{MemoryNodeBuilder}} does not have optimised handling for move/copy operations.
* {{KernelNodeState.builder()}} returns a {{MemoryNodeBuilder}} (instead of a {{KernelNodeBuilder}} when the current state is on a branch. This is a workaround to avoid branching form a branch, which is not supported. The effect of this is that commit hooks currently run against a {{MemoryNodeBuilder}}, which limits the amount of changes commit hooks can add.
* {{SegmentNodeStore.merge()}} currently has no implementation of its own but falls back to the default implementation of its super class.
I left FIXMEs and TODOs in the code accordingly.
> Move purge logic for transient changes below the NodeBuilder interface
> ----------------------------------------------------------------------
>
> Key: OAK-659
> URL: https://issues.apache.org/jira/browse/OAK-659
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core
> Reporter: Michael Dürig
> Attachments: OAK-659-2.patch, OAK-659.patch
>
>
> Currently transient changes are purged down to a persisted branch once a certain size threshold is hit. This logic currently resides in {{RootImpl}}. However this approach doesn't catch the case where a lot of content is added by a commit hook (e.g. index updates) since commit hooks operate on the {{NodeBuilder}} level which is below {{Root}}.
> The aim of this issue is to pursue ways to push the purge logic further down below the {{NodeBuilder}} interface.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira