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

Vikas Saurabh edited comment on OAK-1977 at 8/21/14 9:11 PM:
-------------------------------------------------------------

[~tmueller], {{OrderedPropertyIndexQueryTest}} is failing because with 
OAK-1980, ordered indices support sub-root locations too. For that, it creates 
a {{PrefixCursor}} instance which prepends filter's path to results returned by 
index. The attached patch also does the same concatenation and hence with 
OAK-1980+attached patch, the result nodes' paths get filter's path prefixed 
twice which is then discarded.

OAK-1980 is marked for Oak1.1 as, I believe, it's more of a feature to allow 
indices to be defined under a sub-tree. OTOH, I believe, this issue is a simple 
performance improvement which can be taken in 1.0 branch as well.

About fixing the issue, I see following options:
# have {{PathIterator}} to get currently used index's meta node's path so that 
it can concatenate only relevant portion -- I'm not sure how exactly though :-/ 
(any pointers?)
# convert PropertyIndex to AdvancedQueryIndex and have same mechanism for 
prefixing filter path as is being used in OAK-1980 (I think AdvancedQueryIndex 
is a 1.1 thing and so this would be incompatible with 1.0 branch :()
# take the less general fix and open another issue to generalize it without 
{{isFilterAware}}/{{shouldDescendDirectly}} (where I hope the less general fix 
can be applied on 1.0 directly and the general one can be put on 1.1 only)

WDYT?

(cc [~edivad])


was (Author: catholicon):
[~tmueller], {{OrderedPropertyIndexQueryTest}} is failing because with 
OAK-1980, ordered indices support sub-root locations too. For that, it creates 
a {{PrefixCursor}} instance which prepends filter's path to results returned by 
index. The attached patch also does the same concatenation and hence with 
OAK-1980+attached patch, the result nodes' paths get filter's path prefixed 
twice which is then discarded.

OAK-1980 is marked for Oak1.1 as, I believe, it's more of a feature to allow 
indices to be defined under a sub-tree. OTOH, I believe, this issue is a simple 
performance improvement which can be taken in 1.0 branch as well.

About fixing the issue, I see following options:
# have {{PathIterator}} to get currently used index's meta node's path so that 
it can concatenate only relevant portion -- I'm not sure how exactly though :-/ 
(any pointers?)
# take the less general fix and open another issue to generalize it without 
{{isFilterAware}}/{{shouldDescendDirectly}} (where I hope the less general fix 
can be applied on 1.0 directly and the general one can be put on 1.1 only)

WDYT?

(cc [~edivad])

> ContentMirrorStoreStrategy should utilize path restriction when available
> -------------------------------------------------------------------------
>
>                 Key: OAK-1977
>                 URL: https://issues.apache.org/jira/browse/OAK-1977
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: query
>    Affects Versions: 1.0.1
>            Reporter: Vikas Saurabh
>            Assignee: Thomas Mueller
>             Fix For: 1.1
>
>         Attachments: 1977-benchmark.patch, 1977-proposed.patch
>
>
> Currently {{ContentStoreMirrorStrategy}} has a mirror of content path under 
> {{:index}}. Yet, while {{query}} (and {{count}}) methods doesn't jump 
> directly into restricted path.
> This would be very useful for {{PropertyIndex}} where the queries can be 
> optimized by supplying a path restriction along with an indexed property 
> restriction (I don't know if queries with references would use paths so much 
> though)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to