[ 
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)

Reply via email to