Vikas Saurabh created OAK-3573:
----------------------------------
Summary: BackgroundObserver should decide about collapsing
external events based on backend
Key: OAK-3573
URL: https://issues.apache.org/jira/browse/OAK-3573
Project: Jackrabbit Oak
Issue Type: Improvement
Components: core
Reporter: Vikas Saurabh
Priority: Minor
This is a follow up of OAK-3372. With OAK-3372, {{BackgroundObserver}} by
default won't collapse external events if observation queue is not full.
Although, it exposes a system property to control the behavior, but it's better
if this is done based on persistence used in the back-end.
The reason to still have the collapse is because of this
[comment|https://issues.apache.org/jira/browse/OAK-3372?focusedCommentId=14745607&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14745607]
{panel}
{quote}
I assume whenever cluster support comes it there'd some way where external
changes are polled for and kept.
{quote}
Probably yes but I don't want to speculate too much here as there are currently
no plans to that extend. However, the way segment node store works it might be
favourable to have this collapsing in place anyway. So I'd rather keep it but
add an option to disable it if the back end chooses to. Maybe the commit info
could be used to convey that information in a backward compatible way?
{panel}
A couple of approaches to do it were mentioned
[here|https://issues.apache.org/jira/browse/OAK-3372?focusedCommentId=14976607&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14976607]
{panel}
* 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
{panel}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)