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 Rory Elrick <ro...@gmail.com> on 2018/11/01 23:47:10 UTC

Oak Composite Store

Hi,

I am interested in using the Oak Composite Store but am having a hard time
finding any detailed information or examples of usage.

I have built release 1.8.9 of the oak-store-composite module and read the
corresponding Java doc but still not sure how to proceed.

The use case is blue/green deployments as described here:

https://adapt.to/content/dam/adaptto/production/presentations/2017/adaptTo2017-Zero-downtime-deployments-for-Sling-based-apps-Tomek-Rekawek-Robert-Munteanu.pdf

Thanks





-- 
Cheers

Rory

Re: Oak Composite Store

Posted by Robert Munteanu <ro...@apache.org>.
Hi Rory,

On Fri, 2018-11-02 at 10:47 +1100, Rory Elrick wrote:
> Hi,
> 
> I am interested in using the Oak Composite Store but am having a hard
> time
> finding any detailed information or examples of usage.
> 
> I have built release 1.8.9 of the oak-store-composite module and read
> the
> corresponding Java doc but still not sure how to proceed.
> 
> The use case is blue/green deployments as described here:
> 
> https://adapt.to/content/dam/adaptto/production/presentations/2017/adaptTo2017-Zero-downtime-deployments-for-Sling-based-apps-Tomek-Rekawek-Robert-Munteanu.pdf

At the time there is not much documentation and tooling around on how
to use the composite node store, sorry. I assume you're using Sling or
AEM as you pasted the adaptTo link, you may need to adapt your steps
otherwise.

As a general outline regarding its usage, I would suggest investigating
the following generic actions:

1. You need to generate a repository that can be mounted under /libs
and /apps. Simplest way is to start up Sling/AEM and then shut it down.
Then you have your repository.

2. Move that repository to another place on disk, for instance
'repository-libs'

3. Start up Sling/AEM again, this time configuring the
CompositeNodeStore with two SegmentNodeStoreFactory instances, one
pointing to the 'global' repository - which is ok to not exist, and
another pointing to the 'libs' repository, which is the one you
generated in step 1, and set to read-only. 

There are improvements to be made ( e.g. in step 1 you could make sure
to only store /libs and /apps ) but this is the general direction.

Hope this proves useful in your investigations,

Robert