jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig <mdue...@apache.org>
Subject Re: Conflict handling in Oak
Date Tue, 18 Dec 2012 13:55:15 GMT


On 18.12.12 12:35, Thomas Mueller wrote:
> Hi,
>
>> OTOH non conflicting changes could still lead to non commuting journal
>> entries and thus merging such changes would require journals to be
>> adjusted.
>
> Could you give an example?

Consider the revision you get after

+/a:{}
+/x:{}

on an initially empty tree.

Now session 1 does

 >/a:/x/a

and session 2 does

-/a

concurrently on that revision.

The resulting trees could be merged by my first definition. However, the 
two journal from session 1 and session 2 do not commute. You could 
neither do

 >/a:/x/a
-/a

nor could you do

-/a
 >/a:/x/a

That's why I included "If there are no other conflicts" referring to the 
list of conflicts you gave earlier in my updated definition. With this 
the resulting trees could not be merged at all in the first place.


Generally I think there are four ways to deal with this situation:

1) Make the definition of conflicts sufficiently strong to exclude such 
cases. That's Tom's proposal from this Thread.

2) Allow inconsistent journals.

3) Adjust the journals to reflect the changes introduced through merges.

4) Drop journal support.

Michael


>
> Regards,
> Thomas
>

Mime
View raw message