You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Christoph Kiehl (JIRA)" <ji...@apache.org> on 2007/06/14 18:10:26 UTC

[jira] Updated: (JCR-967) Only search the index for the "jcr:system" tree if needed

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

Christoph Kiehl updated JCR-967:
--------------------------------

    Attachment: patch.txt

This is an initial patch which checks the first location step for "jcr:system". This might not be enough since "jcr:system" might be reachable through the parent operator "..". Not sure about this though.
I didn't implement the check deref nodes. Right any deref node should lead to an inclusion of the system tree index. I'm not sure if it's worth the hassle because for large result sets it might lead to performance degradation because every uuid has to be checked if its item is located under jcr:system.
I chose to implement this check through QueryNode because I think this would be less error prone than implement the whole check in QueryImpl because then QueryImpl has to know about every implementation of QueryNode. As it is now every QueryNode implementation is responsible for itself if it needs the system tree index to be included in the search.

> Only search the index for the "jcr:system" tree if needed
> ---------------------------------------------------------
>
>                 Key: JCR-967
>                 URL: https://issues.apache.org/jira/browse/JCR-967
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: query
>    Affects Versions: 1.3
>            Reporter: Christoph Kiehl
>         Attachments: patch.txt
>
>
> Right now every time a query is executed the index of the current workspace as well as the index of the "jcr:system" tree is searched. A lot of queries are not searching in the "jcr:system" tree at all therefore it should be checked if the query contains paths that include "jcr:system". There are two relevant nodes in the query tree to find that out:
> - what's the first location step and does it include the jcr:system tree? I think that's an easy one.
> - does the query contain a jcr:deref node? If there is an intermediate result of a query may dereference into the jcr:system tree. 
> This should notably speed up query execution if you are working extensively with versioning.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.