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

Reply via email to