[ 
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)

Reply via email to