Hi Andy,
I'm trying to set this up myself based on some internal notes from
Thomas Mueller.
The process that I'm following is:
1. Startup Sling in a 'composite_seed' runmode that generate a
repository that can be used as a mount in the composite mode, e.g.
/libs and /apps
for that I am configuring a
org.apache.jackrabbit.oak.composite.MountInfoProviderService with paths
/apps, /libs
2. Preparing the repository structure so that it has a 'libs' and
'global' repository
3. Starting up Sling in a 'composite_run' runmode that configures the
CompositeNodeStore with two SegmentNodeStore based mounts.
The thing is, right now things are broken and I don't know why :-)
I'll post back if I make more progress.
Thanks,
Robert
On Tue, 2020-03-31 at 13:02 -0700, Andreas Schaefer wrote:
> Hi
>
> Ruben and I want to setup a Sling 12 instance with a composite node
> store where /libs and /apps is in a read only repository and the rest
> in a read/write repo (general).
>
> I tried several approaches but for now I already fail by just trying
> to create a composite node store.
> This is my most promising approach:
>
> 1. Create a Segment Node Store for global
>
> "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService~global": {
> "service.ranking:Integer": "100",
> "name": "Oak-Segment-Tar",
> "repository.home": "launcher/repository-global",
> "host": "localhost"
> },
>
> 2. Create a Secondary Segment Node Store using the factory:
>
> "org.apache.jackrabbit.oak.segment.SegmentNodeStoreFactory~libs": {
> "repository.home": "launcher/repository-libs",
> "customBlobStore": false,
> "role": "composite-mount-libs",
> "nodeDeduplicationCache.size": 0
> },
>
> 3. Create a Mount Info Provider for libs:
>
> "org.apache.jackrabbit.oak.composite.MountInfoProviderService": {
> "mountName": "libs",
> "readOnlyMount": false,
> "pathsSupportingFragments": [
> "/oak:index/*$"
> ],
> "mountedPaths": [
> "/libs",
> "/apps",
> "/jcr:system/rep:permissionStore/oak:mount-libs-crx.default"
> ]
> },
>
> 4. Finally create a Composite Node Store:
>
> "org.apache.jackrabbit.oak.composite.CompositeNodeStoreService": {
> "seedMount": "libs",
> "enabled": true,
> "enableChecks": false
> }
>
> This setup fails because there is no global node store and therefore
> the composite node store is not created.
>
> When I create a Segment Node Store Factory Service for a global node
> store the composite node store is activated but still all changes are
> made in the global node store.
>
> When I start sling with just a global node store and then create a
> symbolic like from the global NS to the segment node store factory
> name (appended role) then Sling is not starting correctly.
>
> Cheers - Andy