[
https://issues.apache.org/jira/browse/OAK-6425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16089636#comment-16089636
]
Tomek Rękawek commented on OAK-6425:
------------------------------------
Actually, locking the merge locally won't help with the underlying node store
is distributed. I created new AtomicCompositeMergeTest to show this behaviour.
There are two test methods, for the local and shared stores. The second test
method fails.
So, maybe rather than using locks, we can pass the commit hook to the global
node store, as [~chetanm] suggested? However, [~mduerig] is also right, that
these commit hooks need to have access to the whole repo. My idea is to wrap
the passed commit hook with an extra class, that will replace the {{before}}
and {{after}} node states with their composite equivalents. See
CommitHookEnhancer for more details.
Fixed as above in [r1802126|https://svn.apache.org/r1802126].
> Make the CompositeNodeStore thread-safe
> ---------------------------------------
>
> Key: OAK-6425
> URL: https://issues.apache.org/jira/browse/OAK-6425
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: composite
> Reporter: Tomek Rękawek
> Assignee: Tomek Rękawek
> Fix For: 1.8, 1.7.4
>
>
> The CompositeNodeStore, unlike other *NodeStore implementations, is not
> thread safe (eg. two concurrent merge() invocations may leave the repository
> in inconsistent state).
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)