You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by Andreas Schaefer <sc...@me.com.INVALID> on 2020/03/30 15:36:44 UTC

Jackrabbit Composite Nodestore Example / Docu

Hi

I was wondering if there is some further documentation or examples available than just https://jackrabbit.apache.org/oak/docs/nodestore/compositens.html <https://jackrabbit.apache.org/oak/docs/nodestore/compositens.html> ?

I would love to bootstrap Sling with two separate repositories.

Cheers - Andy Schaefer

Re: Jackrabbit Composite Nodestore Example / Docu

Posted by Andreas Schaefer <sc...@me.com.INVALID>.
I tried this setup to get the composite node store going but I always run into a catch-22.

In order for Sling to get up and running I need to create a Segment Node Store Service.
That said for the Composite Node Store I need a Global and Secondary Node Store
Provider. That said I cannot create a Global Node Store Provider that uses the
Global Node Store.

I tried to use ’standBy’ on the SegmentNodeStoreService but that does not do what it says - register the Node Store as Node Store Provider (not sure if this is a bug) but also the flag on the SegmentNodeStoreFactory does not adhere to that (registers the Segment Store as NodeStoreProvider either way).

This is my current configuration regarding the Composite Node Store:

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
}

In this scenario the Composite Node Store is deferred because the missing Global Node Store Provider.

- Andy

> On Mar 30, 2020, at 8:36 AM, Andreas Schaefer <sc...@me.com.INVALID> wrote:
> 
> Hi
> 
> I was wondering if there is some further documentation or examples available than just https://jackrabbit.apache.org/oak/docs/nodestore/compositens.html <https://jackrabbit.apache.org/oak/docs/nodestore/compositens.html> ?
> 
> I would love to bootstrap Sling with two separate repositories.
> 
> Cheers - Andy Schaefer


Re: Jackrabbit Composite Nodestore Example / Docu

Posted by Robert Munteanu <ro...@apache.org>.
On Mon, 2020-03-30 at 08:36 -0700, Andreas Schaefer wrote:
> 
> I was wondering if there is some further documentation or examples
> available than just 
> https://jackrabbit.apache.org/oak/docs/nodestore/compositens.html <ht
> tps://jackrabbit.apache.org/oak/docs/nodestore/compositens.html> ?

For reference, I have a working demo of the Sling Starter running with
the CompositeNodeStore at

  https://github.com/apache/sling-org-apache-sling-starter/tree/feature/composite-node-store

See README-composite.md for the details.

Thanks,
Robert