You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by Robert Munteanu <ro...@apache.org> on 2015/03/23 14:21:08 UTC

SLING-4050 - Make it easier to run launchpad on Oak/Mongo

Hi,

I'm going to take a quick look at SLING-4050 and will probably add a new
runmode for Mongo.

I noticed that we currenty define two exclusive run modes for the
Launchpad: jackrabbit and oak. For SLING-4050 I would define the third
one: oak_mongo . I find that it would be better to rename the oak
runmode to oak_tar - as it uses the TarMK backend, but I'm not sure of
the implications. The 'oak' runmode has not been released with Launchpad
7 so the only people affected would be the ones using -SNAPSHOT
releases.

Does anyone see any issues with renaming the oak runmode to oak_tar ? I
will handle all the Maven/Jenkins stuff if we agree to do that.

Cheers,

Robert


Re: SLING-4050 - Make it easier to run launchpad on Oak/Mongo

Posted by Julian Sedding <js...@gmail.com>.
Good job! I agree that tar vs mongo is currently sufficient.

Regards
Julian

On Mon, Mar 23, 2015 at 5:06 PM, Robert Munteanu <ro...@lmn.ro> wrote:
> Hm, I'm doing something wrong and not sure what.
>
> On Mon, Mar 23, 2015 at 5:06 PM, Julian Sedding <js...@gmail.com> wrote:
>> Hi Robert
>>
>>> ... We could also make it that
>>> when the oak runmode is activated it requires one of oak_tar,oak_mongo
>>> active as well and defaults to oak_tar. Would that work for you?
>>
>> Yes, I think that's a good option. So to set the default to oak_tar the
>> sling.properties file should contain a line similar to the following:
>>
>> sling.run.mode.install.options=jackrabbit,oak|oak_tar,oak_mongo
>
> Great, I used exactly that.
>
>> That indicates that run mode "jackrabbit" (default) or "oak" must be
>> active and "oak_tar" or "oak_mongo" must also be active. Is it a
>> problem if "oak_tar" is active for "jackrabbit" deployments?
>
> I think not and we could revisit this later if neeed. The net effect
> is that an OSGi config is added but no one picks it up and for the
> oak_mongo runmode that an additional bundle is installed.
>
> So based on the value of sling.run.modes, the following behaviour is observed
>
> - (empty): jackrabbit 2.x configured
> - oak: Oak with SegmentNodeStore configured
> - oak,oak_mongo: Oak with DocumentNodeStore configured
>
> Other combinations may be added later, but we now have a good starting point.
>
> Thanks for your help,
>
> Robert
>
>
>>
>> Regards
>> Julian
>>
>>
>>
>>
>>
>>
>>
>> On Mon, Mar 23, 2015 at 3:41 PM, Robert Munteanu <ro...@lmn.ro> wrote:
>>> Hi Julian,
>>>
>>> On Mon, Mar 23, 2015 at 3:35 PM, Julian Sedding <js...@gmail.com> wrote:
>>>> Hi Robert
>>>>
>>>> Another option might be to use "mongo" as an additional run mode. I.e.
>>>> run mode "oak" would select the Oak repository implementation and run
>>>> mode "mongo" would add some configuration in order to activate the
>>>> mongo persistence.
>>>>
>>>> I could imagine various pre-configured aspects for Oak, e.g. whether a
>>>> file datastore should be used or not. So examples might be:
>>>>
>>>> oak: Oak repository on TarMK with blobs stored in segments
>>>> oak,datastore: Oak repository on TarMK with blobs in datastore
>>>> oak,mongo,datastore: Oak repository on Mongo with blobs in datastore
>>>>
>>>> WDYT, would that be a viable alternative?
>>>
>>> Overall that looks good, but I would still use the 'oak' prefix. This
>>> way, we don't clash with other possible runmodes, for instance 'mongo'
>>> might clash with a runmode for the MongoDB resource provider, or
>>> another persistence provider using the mongo backend.
>>>
>>> What I not 100% sure about though is how we would 'deactivate' the
>>> default TarkMK configuration if we have something like oak,oak_mongo
>>> active. The 'oak' runmode would define a SegmentNodeStoreService OSGi
>>> config and then the oak_mongo runmode would define a
>>> DocumentNodeStoreService OSGi config, which will clash.
>>>
>>> I would see a way out by having oak be an 'abstract' profile and then
>>> oak_tar and oak_mongo inheriting from it. We could also make it that
>>> when the oak runmode is activated it requires one of oak_tar,oak_mongo
>>> active as well and defaults to oak_tar. Would that work for you?
>>>
>>> If it does, let's see if this is doable or if any changes are needed,
>>> because I have no idea how to implement them :-)
>>>
>>> Robert
>>>
>>>>
>>>> Regards
>>>> Julian
>>>>
>>>> On Mon, Mar 23, 2015 at 2:21 PM, Robert Munteanu <ro...@apache.org> wrote:
>>>>> Hi,
>>>>>
>>>>> I'm going to take a quick look at SLING-4050 and will probably add a new
>>>>> runmode for Mongo.
>>>>>
>>>>> I noticed that we currenty define two exclusive run modes for the
>>>>> Launchpad: jackrabbit and oak. For SLING-4050 I would define the third
>>>>> one: oak_mongo . I find that it would be better to rename the oak
>>>>> runmode to oak_tar - as it uses the TarMK backend, but I'm not sure of
>>>>> the implications. The 'oak' runmode has not been released with Launchpad
>>>>> 7 so the only people affected would be the ones using -SNAPSHOT
>>>>> releases.
>>>>>
>>>>> Does anyone see any issues with renaming the oak runmode to oak_tar ? I
>>>>> will handle all the Maven/Jenkins stuff if we agree to do that.
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Robert
>>>>>
>>>
>>>
>>>
>>> --
>>> Sent from my (old) computer
>
>
>
> --
> Sent from my (old) computer

Re: SLING-4050 - Make it easier to run launchpad on Oak/Mongo

Posted by Robert Munteanu <ro...@lmn.ro>.
Hm, I'm doing something wrong and not sure what.

On Mon, Mar 23, 2015 at 5:06 PM, Julian Sedding <js...@gmail.com> wrote:
> Hi Robert
>
>> ... We could also make it that
>> when the oak runmode is activated it requires one of oak_tar,oak_mongo
>> active as well and defaults to oak_tar. Would that work for you?
>
> Yes, I think that's a good option. So to set the default to oak_tar the
> sling.properties file should contain a line similar to the following:
>
> sling.run.mode.install.options=jackrabbit,oak|oak_tar,oak_mongo

Great, I used exactly that.

> That indicates that run mode "jackrabbit" (default) or "oak" must be
> active and "oak_tar" or "oak_mongo" must also be active. Is it a
> problem if "oak_tar" is active for "jackrabbit" deployments?

I think not and we could revisit this later if neeed. The net effect
is that an OSGi config is added but no one picks it up and for the
oak_mongo runmode that an additional bundle is installed.

So based on the value of sling.run.modes, the following behaviour is observed

- (empty): jackrabbit 2.x configured
- oak: Oak with SegmentNodeStore configured
- oak,oak_mongo: Oak with DocumentNodeStore configured

Other combinations may be added later, but we now have a good starting point.

Thanks for your help,

Robert


>
> Regards
> Julian
>
>
>
>
>
>
>
> On Mon, Mar 23, 2015 at 3:41 PM, Robert Munteanu <ro...@lmn.ro> wrote:
>> Hi Julian,
>>
>> On Mon, Mar 23, 2015 at 3:35 PM, Julian Sedding <js...@gmail.com> wrote:
>>> Hi Robert
>>>
>>> Another option might be to use "mongo" as an additional run mode. I.e.
>>> run mode "oak" would select the Oak repository implementation and run
>>> mode "mongo" would add some configuration in order to activate the
>>> mongo persistence.
>>>
>>> I could imagine various pre-configured aspects for Oak, e.g. whether a
>>> file datastore should be used or not. So examples might be:
>>>
>>> oak: Oak repository on TarMK with blobs stored in segments
>>> oak,datastore: Oak repository on TarMK with blobs in datastore
>>> oak,mongo,datastore: Oak repository on Mongo with blobs in datastore
>>>
>>> WDYT, would that be a viable alternative?
>>
>> Overall that looks good, but I would still use the 'oak' prefix. This
>> way, we don't clash with other possible runmodes, for instance 'mongo'
>> might clash with a runmode for the MongoDB resource provider, or
>> another persistence provider using the mongo backend.
>>
>> What I not 100% sure about though is how we would 'deactivate' the
>> default TarkMK configuration if we have something like oak,oak_mongo
>> active. The 'oak' runmode would define a SegmentNodeStoreService OSGi
>> config and then the oak_mongo runmode would define a
>> DocumentNodeStoreService OSGi config, which will clash.
>>
>> I would see a way out by having oak be an 'abstract' profile and then
>> oak_tar and oak_mongo inheriting from it. We could also make it that
>> when the oak runmode is activated it requires one of oak_tar,oak_mongo
>> active as well and defaults to oak_tar. Would that work for you?
>>
>> If it does, let's see if this is doable or if any changes are needed,
>> because I have no idea how to implement them :-)
>>
>> Robert
>>
>>>
>>> Regards
>>> Julian
>>>
>>> On Mon, Mar 23, 2015 at 2:21 PM, Robert Munteanu <ro...@apache.org> wrote:
>>>> Hi,
>>>>
>>>> I'm going to take a quick look at SLING-4050 and will probably add a new
>>>> runmode for Mongo.
>>>>
>>>> I noticed that we currenty define two exclusive run modes for the
>>>> Launchpad: jackrabbit and oak. For SLING-4050 I would define the third
>>>> one: oak_mongo . I find that it would be better to rename the oak
>>>> runmode to oak_tar - as it uses the TarMK backend, but I'm not sure of
>>>> the implications. The 'oak' runmode has not been released with Launchpad
>>>> 7 so the only people affected would be the ones using -SNAPSHOT
>>>> releases.
>>>>
>>>> Does anyone see any issues with renaming the oak runmode to oak_tar ? I
>>>> will handle all the Maven/Jenkins stuff if we agree to do that.
>>>>
>>>> Cheers,
>>>>
>>>> Robert
>>>>
>>
>>
>>
>> --
>> Sent from my (old) computer



-- 
Sent from my (old) computer

Re: SLING-4050 - Make it easier to run launchpad on Oak/Mongo

Posted by Julian Sedding <js...@gmail.com>.
Hi Robert

> ... We could also make it that
> when the oak runmode is activated it requires one of oak_tar,oak_mongo
> active as well and defaults to oak_tar. Would that work for you?

Yes, I think that's a good option. So to set the default to oak_tar the
sling.properties file should contain a line similar to the following:

sling.run.mode.install.options=jackrabbit,oak|oak_tar,oak_mongo

That indicates that run mode "jackrabbit" (default) or "oak" must be
active and "oak_tar" or "oak_mongo" must also be active. Is it a
problem if "oak_tar" is active for "jackrabbit" deployments?

Carsten, I believe you know this mechanism best. Is it possible to
have run modes depend on the presence of other run modes?

Regards
Julian







On Mon, Mar 23, 2015 at 3:41 PM, Robert Munteanu <ro...@lmn.ro> wrote:
> Hi Julian,
>
> On Mon, Mar 23, 2015 at 3:35 PM, Julian Sedding <js...@gmail.com> wrote:
>> Hi Robert
>>
>> Another option might be to use "mongo" as an additional run mode. I.e.
>> run mode "oak" would select the Oak repository implementation and run
>> mode "mongo" would add some configuration in order to activate the
>> mongo persistence.
>>
>> I could imagine various pre-configured aspects for Oak, e.g. whether a
>> file datastore should be used or not. So examples might be:
>>
>> oak: Oak repository on TarMK with blobs stored in segments
>> oak,datastore: Oak repository on TarMK with blobs in datastore
>> oak,mongo,datastore: Oak repository on Mongo with blobs in datastore
>>
>> WDYT, would that be a viable alternative?
>
> Overall that looks good, but I would still use the 'oak' prefix. This
> way, we don't clash with other possible runmodes, for instance 'mongo'
> might clash with a runmode for the MongoDB resource provider, or
> another persistence provider using the mongo backend.
>
> What I not 100% sure about though is how we would 'deactivate' the
> default TarkMK configuration if we have something like oak,oak_mongo
> active. The 'oak' runmode would define a SegmentNodeStoreService OSGi
> config and then the oak_mongo runmode would define a
> DocumentNodeStoreService OSGi config, which will clash.
>
> I would see a way out by having oak be an 'abstract' profile and then
> oak_tar and oak_mongo inheriting from it. We could also make it that
> when the oak runmode is activated it requires one of oak_tar,oak_mongo
> active as well and defaults to oak_tar. Would that work for you?
>
> If it does, let's see if this is doable or if any changes are needed,
> because I have no idea how to implement them :-)
>
> Robert
>
>>
>> Regards
>> Julian
>>
>> On Mon, Mar 23, 2015 at 2:21 PM, Robert Munteanu <ro...@apache.org> wrote:
>>> Hi,
>>>
>>> I'm going to take a quick look at SLING-4050 and will probably add a new
>>> runmode for Mongo.
>>>
>>> I noticed that we currenty define two exclusive run modes for the
>>> Launchpad: jackrabbit and oak. For SLING-4050 I would define the third
>>> one: oak_mongo . I find that it would be better to rename the oak
>>> runmode to oak_tar - as it uses the TarMK backend, but I'm not sure of
>>> the implications. The 'oak' runmode has not been released with Launchpad
>>> 7 so the only people affected would be the ones using -SNAPSHOT
>>> releases.
>>>
>>> Does anyone see any issues with renaming the oak runmode to oak_tar ? I
>>> will handle all the Maven/Jenkins stuff if we agree to do that.
>>>
>>> Cheers,
>>>
>>> Robert
>>>
>
>
>
> --
> Sent from my (old) computer

Re: SLING-4050 - Make it easier to run launchpad on Oak/Mongo

Posted by Robert Munteanu <ro...@lmn.ro>.
Hi Julian,

On Mon, Mar 23, 2015 at 3:35 PM, Julian Sedding <js...@gmail.com> wrote:
> Hi Robert
>
> Another option might be to use "mongo" as an additional run mode. I.e.
> run mode "oak" would select the Oak repository implementation and run
> mode "mongo" would add some configuration in order to activate the
> mongo persistence.
>
> I could imagine various pre-configured aspects for Oak, e.g. whether a
> file datastore should be used or not. So examples might be:
>
> oak: Oak repository on TarMK with blobs stored in segments
> oak,datastore: Oak repository on TarMK with blobs in datastore
> oak,mongo,datastore: Oak repository on Mongo with blobs in datastore
>
> WDYT, would that be a viable alternative?

Overall that looks good, but I would still use the 'oak' prefix. This
way, we don't clash with other possible runmodes, for instance 'mongo'
might clash with a runmode for the MongoDB resource provider, or
another persistence provider using the mongo backend.

What I not 100% sure about though is how we would 'deactivate' the
default TarkMK configuration if we have something like oak,oak_mongo
active. The 'oak' runmode would define a SegmentNodeStoreService OSGi
config and then the oak_mongo runmode would define a
DocumentNodeStoreService OSGi config, which will clash.

I would see a way out by having oak be an 'abstract' profile and then
oak_tar and oak_mongo inheriting from it. We could also make it that
when the oak runmode is activated it requires one of oak_tar,oak_mongo
active as well and defaults to oak_tar. Would that work for you?

If it does, let's see if this is doable or if any changes are needed,
because I have no idea how to implement them :-)

Robert

>
> Regards
> Julian
>
> On Mon, Mar 23, 2015 at 2:21 PM, Robert Munteanu <ro...@apache.org> wrote:
>> Hi,
>>
>> I'm going to take a quick look at SLING-4050 and will probably add a new
>> runmode for Mongo.
>>
>> I noticed that we currenty define two exclusive run modes for the
>> Launchpad: jackrabbit and oak. For SLING-4050 I would define the third
>> one: oak_mongo . I find that it would be better to rename the oak
>> runmode to oak_tar - as it uses the TarMK backend, but I'm not sure of
>> the implications. The 'oak' runmode has not been released with Launchpad
>> 7 so the only people affected would be the ones using -SNAPSHOT
>> releases.
>>
>> Does anyone see any issues with renaming the oak runmode to oak_tar ? I
>> will handle all the Maven/Jenkins stuff if we agree to do that.
>>
>> Cheers,
>>
>> Robert
>>



-- 
Sent from my (old) computer

Re: SLING-4050 - Make it easier to run launchpad on Oak/Mongo

Posted by Julian Sedding <js...@gmail.com>.
Hi Robert

Another option might be to use "mongo" as an additional run mode. I.e.
run mode "oak" would select the Oak repository implementation and run
mode "mongo" would add some configuration in order to activate the
mongo persistence.

I could imagine various pre-configured aspects for Oak, e.g. whether a
file datastore should be used or not. So examples might be:

oak: Oak repository on TarMK with blobs stored in segments
oak,datastore: Oak repository on TarMK with blobs in datastore
oak,mongo,datastore: Oak repository on Mongo with blobs in datastore

WDYT, would that be a viable alternative?

Regards
Julian

On Mon, Mar 23, 2015 at 2:21 PM, Robert Munteanu <ro...@apache.org> wrote:
> Hi,
>
> I'm going to take a quick look at SLING-4050 and will probably add a new
> runmode for Mongo.
>
> I noticed that we currenty define two exclusive run modes for the
> Launchpad: jackrabbit and oak. For SLING-4050 I would define the third
> one: oak_mongo . I find that it would be better to rename the oak
> runmode to oak_tar - as it uses the TarMK backend, but I'm not sure of
> the implications. The 'oak' runmode has not been released with Launchpad
> 7 so the only people affected would be the ones using -SNAPSHOT
> releases.
>
> Does anyone see any issues with renaming the oak runmode to oak_tar ? I
> will handle all the Maven/Jenkins stuff if we agree to do that.
>
> Cheers,
>
> Robert
>