Hi,

On Wed, Feb 27, 2013 at 5:09 PM, Carsten Ziegeler <cziege...@apache.org> wrote:
> How will this be handled with Oak? Could it happen that due to this
> happening concurrently that the node ends up twice in the repository
> (at /1/node and /2/node in my example)?

The behavior depends on the underlying MicroKernel implementation.

With the new SegmentMK I've been working on, you can control the behavior:

* If both cluster nodes use the same (root) journal, then only one of
them succeeds and the other one will fail with an exception. The
behavior is more or less the same as with current Jackrabbit.

* If the cluster nodes use different journals (with background
merging), then one of the moves will succeed and depending on timing
the other one either fails or ends up producing a duplicate copy of
the tree.

The latter option is designed to boost write concurrency in scenarios
where it's OK for some operations to get lost or produce somewhat
inconsistent results (high-volume commenting or logging systems,
etc.). Operations for which such behavior is not desirable should use
the first option.

BR,

Jukka Zitting

Reply via email to