[
https://issues.apache.org/jira/browse/OAK-4180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15341219#comment-15341219
]
Chetan Mehrotra commented on OAK-4180:
--------------------------------------
Merged to branch to trunk today. Pending work
# Ensure that persistent cache does not cache node under path which are to be
served by secondary store
# Remove path and read revision from meta properties to be stored in secondary
store NodeStates
> Use another NodeStore as a local cache for a remote Document store
> ------------------------------------------------------------------
>
> Key: OAK-4180
> URL: https://issues.apache.org/jira/browse/OAK-4180
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: documentmk
> Reporter: Chetan Mehrotra
> Assignee: Chetan Mehrotra
> Fix For: 1.6
>
> Attachments: OAK-4180-v1.patch
>
>
> DocumentNodeStore makes use of persistent cache to speed up its processing
> and save on making remote calls for data already present in cache
> In addition to that we can look into make use of Segment NodeStore as kind of
> "local copy" for certain paths in repository and route calls to it if
> possible. As part of this task I would like to prototype such an approach. At
> high level it would work as below
> # At start bootstrap the setup and shutdown it down
> # Use a modified "sidegrade" and copy over the NodeStats from Document store
> to Segment store. In such a copy we also store some Document specific
> properties like {{readRevision}} and {{lastRevision}} as hidden property in
> Segment NodeStates
> # In DocumentNodeStore we refactor the current code to extract a
> ## {{AbstractDocumentNodeState}} - Abase class which has some logic move out
> from {{DocumentNodeState}}
> ## {{SegmentDocumentNodeState}} extends above and delegate calls to a wrapped
> {{SegmentNodeState}}
> ## {{DocumentNodeState}} would also extend {{AbstractDocumentNodeState}} and
> hence delegate to some calls to parent. In this when a call comes for
> {{getChildNode}} it can check if that can be served by a local copy of
> {{SegmentNodeStore}} for given {{rootRevision}} then it delegates to that
> # For update plan is to make use of {{Observer}} which listens to changes and
> updates the local copy for certain configured paths.
> ## Key aspect to address here is handle the restart case where in a cluster a
> specific node restarts after some time then how it refreshes itself there
> *Currently its in a prototype phase*
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)