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: oak-api and move operations
Date Tue, 03 Apr 2012 10:27:36 GMT


On 3.4.12 11:20, Thomas Mueller wrote:
> Hi,
>
>> I think there is some misunderstanding here. There is not more merging
>> to be done by the Microkernel as it already does. Currently transient
>> changes are kept in memory and passed to the Microkernel in a single
>> commit call passing along a possible prohibitively large json diff. With
>> the "private branch" approach, the transient changes are simple written
>> ahead into a private branch and only on merge are these applied to the
>> main branch. Think of it like a write ahead of the json diff to the
>> Microkernel (although the implementation might differ).
>
> Currently, commit calls can be easily synchronized in the MicroKernel
> implementation. If you want to achieve a similar isolation with branch()
> and merge(), then a branch() would block other commits (and branch calls)
> until the merge() call.

I can't follow you here. Why would that be necessary?

That would work I guess. One remaining problem is
> then the ability to "undo" (rollback) a branch. I guess there should be a
> method for that ("revert").

Why do we need a rollback? Access to the previous revision is still 
possible through the previous revision id.

Another remaining problem is that each
> MicroKernel implementation would need to support transactions that span
> multiple calls (similar to 2-phase commits or transaction savepoints).

Again why?

Michael

>
> Regards,
> Thomas
>

Mime
View raw message