jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vikas Saurabh (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-5499) IndexUpdate can do mulitple traversal of a content tree during initial index when there are sub-root indices
Date Wed, 08 Mar 2017 12:13:38 GMT

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

Vikas Saurabh commented on OAK-5499:

Ok, I think I now understand what's going on (and that's different from my idea of how-stuff-works
when I logged this issue). About the patch, I think the change is useful for full reindexing
mode. And afaiu, Chetan's concern isn't easy to fit in because {{before}} state for {{IndexUpdate}}
is different from that required by reindexing-editors (EMPTY).

I wonder if it's ok/possible to hook in EMPTY-vs-CURRENT diff being done for reindexing editors
to collect the editors too? I mean it does process normal diff - but if it "finds" that it
needs to reindex a few in current one then it by-passes usual calls being sent in until it
leaves the sub-tree. In my mean-time (while it's by-passing calls), it hands over another
editor for EMPTY-vs-CURRENT diff to "find" other ones.
(I understand the para above is very hand-wavy - but that's the best way I could do with my
current understanding and words :-/.. also, I wonder how 3 level indices would behave then).

[~chetanm], would it makes sense to get this state in and open another one to handle non-full-reindex
case? (assuming doing this completely would take a bit more time)

> 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: Alex Parvulescu
>            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

View raw message