[
https://issues.apache.org/jira/browse/OAK-1295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13958681#comment-13958681
]
Chetan Mehrotra commented on OAK-1295:
--------------------------------------
Summarizing the feature set
* lastRev recovery would be performed as per logic explained above
* A scheduled job would look for cluster node entry where lease has expired and
which are still marked active. Such nodes would be considered as candidate for
which the recovery would be performed
* Recovery logic would take the base time as the timestamp of lastRev entry on
root node (if not present then lastLease time) and would find all nodes which
are modified after that. Such nodes would be check if they need to be fixed
* This logic would also be used when same node restart. A node when properly
shutdown would make an entry in the cluster node table and mark itself in
active. If upon restart it discovers that entry was not proper it would trigger
a recovery and system would only start after recovery is complete
> Recovery for missing _lastRev updates
> -------------------------------------
>
> Key: OAK-1295
> URL: https://issues.apache.org/jira/browse/OAK-1295
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core, mongomk
> Reporter: Marcel Reutegger
> Assignee: Chetan Mehrotra
> Priority: Critical
> Fix For: 0.20
>
> Attachments: OAK-1295-v2.patch, OAK-1295.patch
>
>
> The _lastRev fields are periodically written to MongoDB with a background
> thread.
> This means there may be missing _lastRev updates when an Oak instance crashes.
> There must be a recovery mechanism in place when an Oak instance starts up.
> MongoMK needs to read the most recent _lastRev for the local cluster id and
> get
> documents with a _modified timestamp at _lastRev or newer. These are
> candidates
> for missing _lastRev updates. The _lastRev must only be updated for committed
> non-branch changes.
--
This message was sent by Atlassian JIRA
(v6.2#6252)