[
https://issues.apache.org/jira/browse/OAK-440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13498762#comment-13498762
]
Tudor Rogoz commented on OAK-440:
---------------------------------
Launched the concurrency tests again.And I have the following results:
- for the 3 microkernels that are writing in the same database (pyramid
structures), the mks are not failing anymore.But, the performance doesn't look
so good.So, a test using 3 MicroKernelImpl() takes aprox 1 second to write 3000
nodes (1000 nodes for each mk), and using 3 MongoMicroKernel instances takes
aprox 70 seconds.
See test
MongoConcurrentAddNodesMultipleCommitTest.testConcurentWritingPyramid1().This
was tested all on localhost (both the tests and one mongo instance).
- for 3 microkernels that are writing in the same database (a flat structure),
the mks (or some of them) are failing at some point with the bellow exception
[0].So for this kind of structure when all 3 mks are writing only under the
root level in the tree, seems that still have some concurrency issues.
See test
MongoConcurrentAddNodesMultipleCommitTest.testConcurentWritingFlatStructure()
[0] Exception in thread "pool-1-thread-3"
org.apache.jackrabbit.mk.api.MicroKernelException:
org.apache.jackrabbit.mongomk.impl.command.exception.ConflictingCommitException:
Encountered a concurrent conflicting update, thus can't commit revision 398
and will be retried with new revision
at
org.apache.jackrabbit.mongomk.impl.MongoMicroKernel.commit(MongoMicroKernel.java:105)
Mete, my updates are still on my fork, probably this afternoon Michael Dürig
will move them on the origin.
> Concurrency issue when 3 microkernels are writing in the same db
> ----------------------------------------------------------------
>
> Key: OAK-440
> URL: https://issues.apache.org/jira/browse/OAK-440
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: mongomk
> Environment: linux ubuntu + 1 mongo database instance
> Reporter: Tudor Rogoz
>
> See test ConcurrentWriteMultipleMkMongoTest.testConcurrency().
> org.apache.jackrabbit.mongomk.impl.command.exception.ConflictingCommitException
> on each Thread when 3 mongo microkernels are writing nodes on the same
> database.
> Run the test with: 1000 nodes, 10 nodes for the number of children, and 10
> nodes per commit.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira