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)