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 Bertrand Delacretaz <bd...@apache.org> on 2016/07/28 08:45:20 UTC

Requirements for multiple Oak clients on the same backend (was: [suggestion] introduce oak compatibility levels)

Hi,

On Thu, Jul 28, 2016 at 10:23 AM, Stefan Egli <st...@apache.org> wrote:
>...we could introduce a concept of
> 'compatibility levels' which are a set of features/behaviours that a
> particular oak version has and that application code relies upon....

Good timing, I have a related question about multiple client apps
connecting to the same Oak backend.

Say I have to Java apps A and B which use the same Oak/Mongo/BlobStore
configuration, are there defined requirements as to the Oak library
versions or other settings that A and B use?

Do they need to use the exact same versions of the Oak bundles, and
are violations to that or to other compatibility requirements
detected?

-Bertrand

Re: Requirements for multiple Oak clients on the same backend (was: [suggestion] introduce oak compatibility levels)

Posted by Stefan Egli <st...@apache.org>.
Don't have an answer, but there was a similar question recently on this
list:

"Does Oak core check the repository version ?"
http://markmail.org/thread/sbvjydwdu3g2eze5

Cheers,
Stefan

On 28/07/16 10:45, "Bertrand Delacretaz" <bd...@apache.org> wrote:

>Hi,
>
>On Thu, Jul 28, 2016 at 10:23 AM, Stefan Egli <st...@apache.org>
>wrote:
>>...we could introduce a concept of
>> 'compatibility levels' which are a set of features/behaviours that a
>> particular oak version has and that application code relies upon....
>
>Good timing, I have a related question about multiple client apps
>connecting to the same Oak backend.
>
>Say I have to Java apps A and B which use the same Oak/Mongo/BlobStore
>configuration, are there defined requirements as to the Oak library
>versions or other settings that A and B use?
>
>Do they need to use the exact same versions of the Oak bundles, and
>are violations to that or to other compatibility requirements
>detected?
>
>-Bertrand



Re: Requirements for multiple Oak clients on the same backend (was: [suggestion] introduce oak compatibility levels)

Posted by Michael Dürig <md...@apache.org>.

On 28.7.16 11:03 , Michael Marth wrote:
> Hi Bertrand,
>
> I believe this is unchartered territory.
> It is (usually?) safe to assume that the persistence state written by Oak version X can be read and modified by version Y if Y > X.

The TarMK variants have safeguards built in to fail early without 
corrupting anything if the persistent version doesn't match the code 
version.

Michael


> However: version Y might introduce new features or perform changes on the state\u2019s format, etc. When such a change is introduced it is not considered that version X might still operate on the same state.
> For many values of X and Y your setup would probably work in practice. But to my knowledge there is no formal way to find out which values of X and Y are safe - at least so far.


>
> Michael
>
>
>
>
> On 28/07/16 10:45, "Bertrand Delacretaz" <bd...@apache.org> wrote:
>
>> Hi,
>>
>> On Thu, Jul 28, 2016 at 10:23 AM, Stefan Egli <st...@apache.org> wrote:
>>> ...we could introduce a concept of
>>> 'compatibility levels' which are a set of features/behaviours that a
>>> particular oak version has and that application code relies upon....
>>
>> Good timing, I have a related question about multiple client apps
>> connecting to the same Oak backend.
>>
>> Say I have to Java apps A and B which use the same Oak/Mongo/BlobStore
>> configuration, are there defined requirements as to the Oak library
>> versions or other settings that A and B use?
>>
>> Do they need to use the exact same versions of the Oak bundles, and
>> are violations to that or to other compatibility requirements
>> detected?
>>
>> -Bertrand

Re: Requirements for multiple Oak clients on the same backend (was: [suggestion] introduce oak compatibility levels)

Posted by Bertrand Delacretaz <bd...@apache.org>.
Hi Michael,

On Thu, Jul 28, 2016 at 11:03 AM, Michael Marth <mm...@adobe.com> wrote:
> ...to my knowledge there is no formal way to find out which values of X and Y are safe - at least so far....

Ok, thanks for the info!

That might be something to keep in mind when designing new features -
detecting that you're running on an incompatible version of the
storage/indexes/whatever and loudly failing if the conversion cannot
happen on the fly.

(which is similar to Stefan's question about compatibility levels)

-Bertrand

Re: Requirements for multiple Oak clients on the same backend (was: [suggestion] introduce oak compatibility levels)

Posted by Michael Marth <mm...@adobe.com>.
Hi Bertrand,

I believe this is unchartered territory.
It is (usually?) safe to assume that the persistence state written by Oak version X can be read and modified by version Y if Y > X.
However: version Y might introduce new features or perform changes on the state’s format, etc. When such a change is introduced it is not considered that version X might still operate on the same state.
For many values of X and Y your setup would probably work in practice. But to my knowledge there is no formal way to find out which values of X and Y are safe - at least so far. 

Michael




On 28/07/16 10:45, "Bertrand Delacretaz" <bd...@apache.org> wrote:

>Hi,
>
>On Thu, Jul 28, 2016 at 10:23 AM, Stefan Egli <st...@apache.org> wrote:
>>...we could introduce a concept of
>> 'compatibility levels' which are a set of features/behaviours that a
>> particular oak version has and that application code relies upon....
>
>Good timing, I have a related question about multiple client apps
>connecting to the same Oak backend.
>
>Say I have to Java apps A and B which use the same Oak/Mongo/BlobStore
>configuration, are there defined requirements as to the Oak library
>versions or other settings that A and B use?
>
>Do they need to use the exact same versions of the Oak bundles, and
>are violations to that or to other compatibility requirements
>detected?
>
>-Bertrand