You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Tomek Rękawek (JIRA)" <ji...@apache.org> on 2017/05/15 06:06:04 UTC

[jira] [Comment Edited] (OAK-6220) Copy on write node store implementation

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

Tomek Rękawek edited comment on OAK-6220 at 5/15/17 6:05 AM:
-------------------------------------------------------------

Proposed structure of the copy-on-write local root:

* /L/ - the local repository path
* /L/root - the local repository root, copied from the global /
* /L/root/:cow-repo-path - string property, equals to L, useful for merging (so we know if the merge operation should be done on the global or local root),
* /L/checkpoints - base for the local checkpoints
* /L/checkpoints/inherited - a string array containing names of the checkpoints available when the COW was turned on (therefore, they should be available for the local repo)
* /L/checkpoints/XYZ - a local checkpoint
* /L/checkpoints/XYZ/created - long created timestamp
* /L/checkpoints/XYZ/lifetime - long lifetime value
* /L/checkpoints/XYZ/root - the root of the checkpoint
* /L/checkpoints/XYZ/info - container for the checkpoint info (string key values)

The COW should be enabled with a JMX MBean.


was (Author: tomek.rekawek):
Proposed structure of the copy-on-write local root:

* /L/ - the local repository path
* /L/root - the local repository root, copied from the global /
* /L/root/:cow-repo-path - string property, equals to L, useful for merging (so we know if the merge operation should be done on the global or local root),
* /L/checkpoints - base for the local checkpoints
* /L/checkpoints/inherited - a string array containing names of the checkpoints available when the COW was turned on (therefore, they should be available for the local repo)
* /L/checkpoints/XYZ - a local checkpoint
* /L/checkpoints/XYZ/created - long created timestamp
* /L/checkpoints/XYZ/lifetime - long lifetime value
* /L/checkpoints/XYZ/root - the root of the checkpoint
* /L/checkpoints/XYZ/info - container for the checkpoint info (string key values)

> 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
>
>
> 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 DocumentNodeStore and SegmentNodeStore supports COW natively, we may simply copy the / tree to some user-provided path and use it as a new root.



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