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

Michael Dürig commented on OAK-659:
-----------------------------------

AFAIC {{NodeBuilder.reset}} could be used to implement {{Root.reset}}. For 
{{Root.rebase}} we could add {{NodeBuilder.rebase}}, which would be similar to 
{{NodeBuilder.reset}}. However {{NodeBuilder}} is getting a bit unwieldy by 
adding even more functionality to it.

There is also issues with adding the {{NodeStore.setRoot(NodeBuilder, 
CommitHook)}} method. It introduces some strange asymmetries to the API: 1. You 
*get* a {{NodeState}} from a {{NodeStore}} but you *set* a {{NodeBuilder}} on a 
{{NodeStore}}. 2nd You set a *{{NodeState}}* on a {{NodeStoreBranch}} but you 
set a *{{NodeBuilder}}* on a {{NodeStore}}.
                
> 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.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