[
https://issues.apache.org/jira/browse/OAK-2829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14528316#comment-14528316
]
Vikas Saurabh commented on OAK-2829:
------------------------------------
{quote}
Each cluster node builds a consolidated diff for the changes done between two
runs of the background update and pushes it to the DocumentStore before the
_lastRev is updated on the root document. Other cluster nodes picking up the
change on the root document will then read the external consolidated diffs
matching the update of _lastRevs on the root document. The diffs will then be
used to identify the nodes to compare.
The collection for those consolidated diffs would contain data similar to
existing documents in the changes collection, but the changes would be
serialized as a String to make it work with the RDB backend as well.
{quote}
I think we should use such op-log type functionality from back-end itself, if
available. So, I imagine we should abstract an op-log type layer -- for mongo
it can just wrap plain mongo op-log ... for cases like RDB backend, we can
probably go for our custom op-log that gets updated along with lastRevs.
(cc [~chetanm], [~mreutegg])
> Comparing node states for external changes is too slow
> ------------------------------------------------------
>
> Key: OAK-2829
> URL: https://issues.apache.org/jira/browse/OAK-2829
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: core, mongomk
> Reporter: Marcel Reutegger
> Fix For: 1.3.0
>
>
> Comparing node states for local changes has been improved already with
> OAK-2669. But in a clustered setup generating events for external changes
> cannot make use of the introduced cache and is therefore slower. This can
> result in a growing observation queue, eventually reaching the configured
> limit. See also OAK-2683.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)