[
https://issues.apache.org/jira/browse/OAK-3372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14745460#comment-14745460
]
Vikas Saurabh commented on OAK-3372:
------------------------------------
Wow... {{SegmentNodeStore#refreshHead}} seems like a very frequently called
method. I assume whenever cluster support comes it there'd some way where
external changes are polled for and kept. This stored information would then be
used to refresh head. What I mean is that we would probably keep polling for
external changes and refreshHead separate. Is that assumption correct? If yes,
then I think that polling thread would be akin to
{{DocumentNodeStore#backgroundRead}}. In that case, I think consecutive
external events without any local changes 'might' not be as frequent.
> Collapsing external events in BackgroundObserver even before queue is full
> leads to JournalEntry not getting used
> -----------------------------------------------------------------------------------------------------------------
>
> Key: OAK-3372
> URL: https://issues.apache.org/jira/browse/OAK-3372
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.3.5
> Reporter: Vikas Saurabh
> Labels: resilience
>
> BackgroundObserver currently merges external events if the last one in queue
> is also an external event. This leads to diff being done for a revision pair
> which is different from the ones pushed actively into cache during backgroud
> read (using JournalEntry) i.e. diff queries for {{diff("/a/b", rA, rC)}}
> while background read had pushed results of {{diff("/a/b", rA, rB)}} and
> {{diff("/a/b", rB, rC)}}.
> (cc [~mreutegg], [~egli], [~chetanm], [~mduerig])
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)