jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Guggisberg <stefan.guggisb...@gmail.com>
Subject Re: [jr3 microkernel] Write skew
Date Wed, 30 Nov 2011 17:13:52 GMT
On Wed, Nov 30, 2011 at 3:21 PM, Michael Dürig <mduerig@apache.org> wrote:
>
>
> On 30.11.11 13:57, Alexander Klimetschek wrote:
>>
>> I expect there is a lot of code outside that relies on the copy-on-write
>> nature of JR 2 - i.e. that anything the session did not touch yet is
>> always "live". Introducing snapshot isolation (which would be
>> copy-on-read IIUC) would break those cases (but usually these errors
>> will depend on concurrency, thus hard to spot).
>>
>> Now looking at the specs, I am confused: in JCR 1.0 it was up to the
>> implementation to be using copy-on-read or copy-on-write [0]. In JCR 2.0
>> that text was replaced by [1] (IIUC, didn't find anything else) which
>> seems to be defining copy-on-write as the standard behavior now:
>>
>> "A change that is persisted is visible to all other sessions bound to
>> the same persistent workspace that have sufficient read permission."
>>
>> That would mean that JR 3 cannot do snapshot isolation! But I might be
>> missing something...
>
>
> Good catch! Two points:
>
> 1) Does visible mean immediately visible on next access or visible after
> refresh? The second case would work with snapshot isolation.
>
> 2) Event though I'd like it to be different, spec. compliance hasn't been a
> top priority on this project so far.

i guess what you mean by 'spec compliance' is 'support of all and every
optional features in the JCR spec'. and i agree with that.

jr3 should IMO be spec compliant in the sense that it passes the TCK.
which optional features should be supported is TBD.

we don't need another JCR 2.0/2.1 reference implementation.
we already have one with jackrabbit 2.x

cheers
stefan

>
> Michael
>
>
>>
>> [0]
>>
>> http://www.day.com/specs/jcr/1.0/7.1.3.4_Seeing_Changes_Made_by_Other_Sessions.html
>> [1]
>>
>> http://www.day.com/specs/jcr/2.0/10_Writing.html#10.1.4%20Visibility%20of%20Changes
>>
>> Cheers,
>> Alex
>>
>> --
>> Alexander Klimetschek
>> Developer // Adobe (Day) // Berlin - Basel
>>
>

Mime
View raw message