Relaxed write synchronization in MongoMK in http://svn.apache.org/r1534626
The newly introduced CommitQueue coordinates commits based on the commit revision and makes sure changes are reported back to the ChangeDispatcher in a consistent sequence. I.e. the commit queue delays commits when there is a pending commit with an older revision.
Regular commits done by MongoMK.commit() and MongoMK.merge() may now proceed concurrently. A background write currently blocks regular commits. Oak cannot fully leverage the improved concurrency right now, because of the merge lock in KernelNodeStore.
The new ConcurrentUpdatesTest illustrates the improved concurrency by using MongoMK directly without oak-core on top. The test peaks at about 1000 concurrent updates per second on my machine compared to 370 updates per second with a single thread. The single MongoDB becomes the bottleneck.
Revision 1529804: synchronization on getNodes removed