Stefan Egli created OAK-4935:

             Summary: support prefiltering of async index updates
                 Key: OAK-4935
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: core
    Affects Versions: 1.5.12
            Reporter: Stefan Egli

As pointed out 
 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 

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

Reply via email to