[ 
https://issues.apache.org/jira/browse/OAK-5169?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Egli resolved OAK-5169.
------------------------------
    Resolution: Fixed

unprecise exclude filtering introduced in 
http://svn.apache.org/viewvc?rev=1771708&view=rev

> ChangeSetFilterImpl should support large exclude-path sets
> ----------------------------------------------------------
>
>                 Key: OAK-5169
>                 URL: https://issues.apache.org/jira/browse/OAK-5169
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.5.14
>            Reporter: Stefan Egli
>            Assignee: Stefan Egli
>             Fix For: 1.5.15
>
>
> The initial assumptions for the ChangeSetFilterImpl was for exclude paths 
> (and include paths for that matter) to be a rather small set, perhaps less 
> than 10. In real-life scenarios larger sets were seen, which render the 
> {{excludes()}} algorithm there very non-well performing. As for large exclude 
> sets the iteration through its patterns for each of the ChangeSet-paths 
> becomes an O(n*m). This should be avoided and instead a deterministic 
> approach taken.
> The suggestion is to switch to an '_unprecise_' mode when the exclude paths 
> passed to the ChangeSetFilterImpl is very large. In that case it can 
> determine a reasonable set of parent paths, which it then compares against 
> the ChangeSet paths. If one of those unprecise exclude paths matches, it 
> shall treat this as 'possibly excluded' - which means if the include paths 
> match in that case, the filter should stop and conclude with 'include'.



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

Reply via email to