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

Marcel Reutegger commented on OAK-6220:
---------------------------------------

The DocumentNodeStore implementation does not support multiple builders off a 
branched node state. See also OAK-1838. This is most likely the reason why some 
tests fail.

I would rather solve this by composition. Take any NodeStore implementation 
(unaware of CoW) and layer a CoW NodeStore implementation on top of it. It 
would be yet another option in the nstab proposal (e.g. volatile). The CoW 
NodeStore could be based on a checkpoint which is created on startup and 
released on shutdown.

I think the existing MemoryNodeStore already supports this to some degree. It's 
in-memory only and does not expose the checkpoints of an underlying store, but 
it can be based on any NodeState.

> Copy on write node store implementation
> ---------------------------------------
>
>                 Key: OAK-6220
>                 URL: https://issues.apache.org/jira/browse/OAK-6220
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: core
>            Reporter: Tomek Rękawek
>             Fix For: 1.8
>
>         Attachments: OAK-6220-2.patch, OAK-6220.patch
>
>
> The copy-on-write (COW) node store implementation would allow to temporarily 
> switch the repository into the "testing" mode, in which all the changes are 
> saved in a reversible way. After switching back to the "production" mode, the 
> test changes should be dropped.
> This should include checkpoints as well.
> Because the SegmentNodeStore supports COW natively, we may simply copy the / 
> tree to some user-provided path and use it as a new root. For the 
> DocumentNodeStore we'll need something more complex.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to