Details
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
- is related to
-
OAK-6636 Create a path cache for the CompositeNodeState
- Closed