Hi, On Mon, Jul 22, 2013 at 1:35 PM, Michael Dürig <[email protected]> wrote: > For other NodeStore implementations I currently don't see how to reuse the > code from SegmentMK without changing the contract of the Microkernel.merge > method. As long as that method does its own merge magic we need to prevent > concurrent merges in order to avoid the race condition. This means we'd need > to synchronise on the NodeStore instance as you mention. But AFAIR we > explicitly wanted to avoid this for scalability reasons.
Note that the extra synchronization here would only hurt single-node concurrency, not horizontal scalability across cluster nodes. I.e. it would still be possible for two cluster nodes (even two repository/KernelNodeStore instances in the same JVM) to commit concurrently. The limitation would be on the set of concurrent sessions for which we want to keep track of local commit information for observation. BR, Jukka Zitting
