jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Mueller <muel...@adobe.com>
Subject Re: oak-api and move operations
Date Tue, 03 Apr 2012 10:20:58 GMT

>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. 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"). 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).


View raw message