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: SegmentNodeStore merge operations
Date Thu, 07 Mar 2013 12:05:47 GMT


On 7.3.13 11:57, Marcel Reutegger wrote:
>> On Thu, Mar 7, 2013 at 1:08 PM, Marcel Reutegger <mreutegg@adobe.com>
>> wrote:
>>> as mentioned before, I think snapshot isolation is just fined because
>>> in most cases it is sufficient and allows for increased concurrency. for
>>> the cases where more consistency guarantees are needed, like
>>> unique UUIDs and hard references we should implement the
>>> validators accordingly and e.g. use a technique like materializing the
>> conflict.
>>
>> That technique essentially serializes all commits that could possibly
>> violate a global invariant.
>
> not necessarily. e.g. if we take the unique UUID as an example,
> two sessions can proceed concurrently when they create nodes
> with different UUIDs, which is usually the case. the conflict only
> materializes when you create two nodes with the same UUID.

In other words: it makes the commits serializable without serializing 
them ;-)

>
>> The SegmentMK can avoid such
>> synchronization points entirely at the cost of potentially "undoing"
>> some commits that become invalid later on.
>
> doesn't this require knowledge about the internals of the global
> invariant. how does the SegmentMK know what exactly it can undo?

Yes I'm also a bit worried about this. Couldn't this lead to cascading 
undos? And further to violation of other application constraints when 
data gets "uncommited"? I think this is a very slippery slope...

Michael

>
> regards
>   marcel
>

Mime
View raw message