[ 
https://issues.apache.org/jira/browse/OAK-5499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15837149#comment-15837149
 ] 

Chetan Mehrotra commented on OAK-5499:
--------------------------------------

Collecting oak:index nodes as part of first reindex traversal would help in 
avoiding further traversal. 

Another option would be to use nodetype index and look for 
oak:QueryIndexDefinition entries. This can then be used to determine location 
of oak:index nodes in whole repository

> 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
>
>
> 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)

Reply via email to