[
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