Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-1056

Transient changes contributed by commit hooks are kept in memory

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • None
    • 0.20
    • core
    • None

    Description

      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.

      Attachments

        1. OAK-1056.patch
          24 kB
          Marcel Reutegger
        2. OAK-1056.patch
          26 kB
          Marcel Reutegger

        Issue Links

          Activity

            People

              mreutegg Marcel Reutegger
              mduerig Michael Dürig
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: