You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Vikas Saurabh (JIRA)" <ji...@apache.org> on 2014/12/10 15:05:13 UTC

[jira] [Comment Edited] (OAK-2341) Use approx counters property index costs even when path restriction is available

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

Vikas Saurabh edited comment on OAK-2341 at 12/10/14 2:04 PM:
--------------------------------------------------------------

With {{counter}} index, we can scale down cost for a given path restriction as {{currentCalcCost / approx-whole-tree-node-count * approx-path-restricted-node-count}. While it won't be the most accurate way to do the scaling... but, should still be better than nothing :).

Note, we need to take care that case2->step2 is already considering the path restriction. We probably should remove that optimization and resort to scaling cost as mentioned above.


was (Author: catholicon):
With {{counter}} index, we can scale down cost for a given path restriction as {{currentCalcCost / approx-whole-tree-node-count * approx-path-restricted-node-count}. While it won't be the most accurate way to do the scaling... but, should still be better than nothing :).

> Use approx counters property index costs even when path restriction is available
> --------------------------------------------------------------------------------
>
>                 Key: OAK-2341
>                 URL: https://issues.apache.org/jira/browse/OAK-2341
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>    Affects Versions: 1.1.3
>            Reporter: Vikas Saurabh
>
> Currently, cost calculation of property index follows following psuedo-code:
> * For "is not null" case:
> ## return {{entryCount}} || approximate counted indexed nodes
> ## if above doesn't work out, do a partial traversal and return extrapolated cost
> * For property in (a, b, ...) or property==value case:
> ## return {{entryCount}}/{{keyCount}} || approximate counted index nodes for each key (a, b, etc)
> ## if above doesn't work out, do a partial traversal over whole indexed tree or sub-tree (if path restriction is available) and return extrapolated cost
> approx counter on index is used only if {{entryCount}} property is missing in index definition node.
> The issue in step 1 in both cases is that it doesn't consider path restriction if it's given in the query.
> The only place where path restriction is being considered is in case2->step2.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)