jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig <mdue...@apache.org>
Subject Re: [jr3 microkernel] Write skew
Date Thu, 01 Dec 2011 14:50:14 GMT


On 1.12.11 14:25, Jukka Zitting wrote:
>> Eventually consistent approaches are IMO very hard to get right with JCR
>> since most operation are assumed to be persisted after dispatch. One
>> solution I see is to have changes caused by conflict resolution (i.e. during
>> convergence) to appear as normal changes as if they where done by other
>> sessions (see [1]). This would however require changing the revision model
>> of the microkernel from linear shaped to tree shaped.
>
> This to me sounds like the best approach to take if only there's a way
> to solve the problems you mention. The main benefit of an eventually
> consistent model is that a save() call can safely return without the
> repository having to synchronizes with other cluster nodes or
> ultimately even other threads within a single node.

I think the toughest question here is how to merge conflicting commits. 
There are some quite pathological cases [1]: consider the case where a 
node x is moved such that it becomes a child of node y in one session 
and at them same time node y is moved such that it becomes a child of 
node x in another session. The situation is inherently symmetric and 
neither move can follow the other. On merge there seems to be no better 
way than to undo one (or both?) of the changes of the sessions.

Michael

[1] 
http://wiki.apache.org/jackrabbit/Clustering%20the%20Microkernel#Replication


Mime
View raw message