[ 
https://issues.apache.org/jira/browse/OAK-3372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14976607#comment-14976607
 ] 

Vikas Saurabh commented on OAK-3372:
------------------------------------

Discussed a few options of detecting segment/document with [~chetanm] and 
[~mreutegg].
* Background observer can be passed the configuration to collapse/not-collapse 
external events early using descriptors
* Since external event can't have non-null commit info, we might hack around 
and add some extra data into local events - that extra info essentially can 
configure the background observer. Apart from this being very hacky, it's also 
hard to generate solve the case when there are no local events getting generated

It seems that the solutions to differentiate segment and document store inside 
background observer is non-trivial. Added to that there's no concept of 
external event wrt segment anyway. So, it might make sense to resolve this 
issue with {{collapse only when queue is full}} strategy and open a new one to 
track {{detect mode and decide collapse behavior}} strategy. [~mduerig], wdyt?

> 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