Stefan Egli created OAK-4935:
--------------------------------

             Summary: support prefiltering of async index updates
                 Key: OAK-4935
                 URL: https://issues.apache.org/jira/browse/OAK-4935
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: core
    Affects Versions: 1.5.12
            Reporter: Stefan Egli


As pointed out 
[here|https://issues.apache.org/jira/browse/OAK-4924?focusedCommentId=15568308&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15568308]
 at the moment the AsyncIndexUpdate, via SegmentNodeStore.refreshHead passes 
null in the contentChanged call. This prevents prefiltering from being applied.

[~chetanm] suggested to explicitly run the ChangeCollector ValidationProvider 
in the AsyncIndexUpdate.mergeWithConcurrencyCheck (see [comment 
here|https://issues.apache.org/jira/browse/OAK-4924?focusedCommentId=15568339&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15568339]).

Alternatively the AsyncIndexUpdate.mergeWithConcurrencyCheck could provide an 
explicit ChangeSet representing empty sets for all (paths, names, types, 
properties), as really an index update shouldn't generate anything of interest 
for any jcr listener. Not sure if this is always 100% the case but it sounds 
like a bit of a waste of CPU to collect hidden paths (of the indices) in a 
ChangeSet which then anyway shouldn't be applicable to any listener. But yes, 
it would be somewhat of a violation of the general contract to have the 
ChangeSet represent all changes. Then again, we could argue that hidden paths 
aren't included.

[~chetanm], wdyt?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to