Stefan Egli updated OAK-5186:
    Priority: Blocker  (was: Major)

> ChangeSetFIlterImpl: support many includePaths by filtering for 1st path name
> -----------------------------------------------------------------------------
>                 Key: OAK-5186
>                 URL: https://issues.apache.org/jira/browse/OAK-5186
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 1.5.14
>            Reporter: Stefan Egli
>            Priority: Blocker
>             Fix For: 1.6
>         Attachments: OAK-5186.patch
> When there is a large number of include paths in the ChangeSetFilterImpl and 
> combine that with a large-ish ChangeSet (many paths) then the comparison 
> becomes expensive, as there is a loop with each ChangeSet-path, then looping 
> through each include path. Basically an {{O(n*m)}}.
> A probably ideal solution would be to implement a tree with the tree items be 
> the path elements. And have two sets of trees: the filter one and the 
> ChangeSet one.
> A simpler and perhaps 'good enough' solution could be to just look at the 
> first level name of both the filter include paths: if a ChangeSet path's 
> first level name is not in that set, then it can't be included. That would 
> allow to skip the pattern comparison (which is slower even though it is a 
> compiled {{Pattern}}).

This message was sent by Atlassian JIRA

Reply via email to