[ https://issues.apache.org/jira/browse/OAK-5499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15837817#comment-15837817 ]
Alex Parvulescu commented on OAK-5499: -------------------------------------- bq. Collecting oak:index nodes as part of first reindex traversal would help in avoiding further traversal. It wouldn't though, the traversal would happen anyways because that's how the diff currently works. I added a comment on OAK-5511, but I don't see it as helping much here. > IndexUpdate can do mulitple traversal of a content tree during initial index > when there are sub-root indices > ------------------------------------------------------------------------------------------------------------ > > Key: OAK-5499 > URL: https://issues.apache.org/jira/browse/OAK-5499 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core > Reporter: Vikas Saurabh > Assignee: Vikas Saurabh > Priority: Minor > Fix For: 1.8 > > Attachments: OAK-5499.patch, OAK-5499-v2-demo.patch, > OAK-5499-v2-fix.patch > > > In case we've index defs such as: > {noformat} > /oak:index/foo1Index > /content > /oak:index/foo2Index > {noformat} > then initial indexing process \[0] would traverse tree under {{/content}} > twice - once while indexing for top-level indices and next when it starts to > index newly discovered {{foo2Index}} while traversing {{/content/oak:index}}. > What we can do is that while first diff processes {{/content}} and discovers > a node named {{oak:index}}, it can actively go in that tree and peek into > index defs from under it and register as required. The diff can then proceed > under {{/content}} while the new indices would also get diffs (avoiding > another traversal) > \[0] first time indexing or in case {{/:async}} gets deleted or checkpoint > for async index couldn't be retrieved -- This message was sent by Atlassian JIRA (v6.3.4#6332)