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

Reply via email to