[ 
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

Reply via email to