[ https://issues.apache.org/jira/browse/OAK-1056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13958627#comment-13958627 ]
Marcel Reutegger commented on OAK-1056: --------------------------------------- Root cause was OAK-1670. > Transient changes contributed by commit hooks are kept in memory > ---------------------------------------------------------------- > > Key: OAK-1056 > URL: https://issues.apache.org/jira/browse/OAK-1056 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core > Reporter: Michael Dürig > Assignee: Marcel Reutegger > Priority: Blocker > Fix For: 0.20 > > Attachments: OAK-1056.patch, OAK-1056.patch > > > With the {{KernelNodeStore}}, transient changes contributed by commit hooks > are currently kept in memory instead of being written ahead to the private > branch. The reason for this is that we need to be able to undo such changes > if a commit hook later in the process fails the commit. Doing this > efficiently would need some support from the persistent layer. Either the > ability for branching from a branch or the ability to roll back to a previous > state. > See the TODOs in {{KernelNodeState.builder()}}, which returns a > MemoryNodeBuilder (instead of a KernelNodeBuilder when the current state is > on a branch. This is the workaround to avoid branching form a branch and has > the effect that commit hooks currently run against a MemoryNodeBuilder and > limits the amount of changes commit hooks can add. -- This message was sent by Atlassian JIRA (v6.2#6252)