Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-6585

Allow to use patterns in the Mount#pathSupportingFragments

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.7.7, 1.8.0
    • composite, core-spi
    • None

    Description

      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:

      /oak:index/lucene
      

      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:

      /oak:index/*$
      

      For example, it'll match following paths:

      /oak:index/uuid
      /oak:index/lucene
      

      but not these:

      /oak:index
      /oak:index/uuid/:index
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              tomek.rekawek Tomek Rękawek
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: