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 "Tomek Rękawek (JIRA)" <ji...@apache.org> on 2017/08/24 11:23:00 UTC

[jira] [Commented] (OAK-6585) Allow to use patterns in the Mount#pathSupportingFragments

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

Tomek Rękawek commented on OAK-6585:
------------------------------------

Fixed for trunk in [r1806028|https://svn.apache.org/r1806028].

> Allow to use patterns in the Mount#pathSupportingFragments
> ----------------------------------------------------------
>
>                 Key: OAK-6585
>                 URL: https://issues.apache.org/jira/browse/OAK-6585
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: composite, core-spi
>            Reporter: Tomek Rękawek
>             Fix For: 1.8, 1.7.7
>
>
> The pathSupportingFragments field allows to configure subtrees under which the nodes with names containing {{oak:mount-MOUNT_NAME}} fragment are redirected to a non-default mount.
> It's used when running Oak on composite node store - in this case, the indexing data have to be split between different node stores and setting the pathSupportingFragments to {{/oak:index}} allows to do this.
> However, in terms of the composite node store performance, this option is pretty expensive. Setting it on a low-level path like {{/oak:index}} means that all the node states below this path has to be wrapped with the CompositeNodeState objects and we can't fallback to the native Segment/DocumentNodeStates. For example, the node:
> {noformat}
> /oak:index/lucene
> {noformat}
> has to be composite, because it's children may belong to the default ({{:index}}) or non-default store ({{:oak:mount-libs-index}}. However the children themselves doesn't need to be wrapped anymore.
> In order to improve this, we should support patterns in the {{pathSupportingFragments}} entries. The pattern is a normal path, but supporting two special characters:
> * {{*}} - matches a sequence of characters different than {{/}},
> * {{$}} - matches the end of the path.
> Then, we can define the pathSupportingFragments with the following pattern:
> {noformat}
> /oak:index/*$
> {noformat}
> For example, it'll match following paths:
> {noformat}
> /oak:index/uuid
> /oak:index/lucene
> {noformat}
> but not these:
> {noformat}
> /oak:index
> /oak:index/uuid/:index
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)