[ https://issues.apache.org/jira/browse/OAK-1553?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13941067#comment-13941067 ]
Michael Dürig edited comment on OAK-1553 at 3/19/14 10:14 PM: -------------------------------------------------------------- Attached patch implements the more sophisticated merging for {{AbstractRebaseDiff}} (in memory implementation) as sketched above. All test cases still pass and {{UserManagerImplTest#testConcurrentCreateUser}} from OAK-1541 also passes. [~jukkaz], [~mreutegg] do you think this can also be implemented for segment, document node store? was (Author: mduerig): Attached patch implements the more sophisticated merging for {{AbstractRebaseDiff}} (in memory implementation) as sketched above. All test cases still pass and {{UserManagerImplTest#testConcurrentCreateUser}} from OAK-1541 also passes. > More sophisticated conflict resolution when concurrently adding nodes > --------------------------------------------------------------------- > > Key: OAK-1553 > URL: https://issues.apache.org/jira/browse/OAK-1553 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: core, mk, mongomk, segmentmk > Reporter: Michael Dürig > Assignee: Michael Dürig > Fix For: 0.20 > > Attachments: OAK-1553.patch > > > {{MicroKernel.rebase}} currently specifies: "addExistingNode: A node has been > added that is different from a node of them same name that has been added to > the trunk." > This is somewhat troublesome in the case where the same node with different > but non conflicting child items is added concurrently: > {code} > f.add("fo").add("u1"); commit(); > f.add("fo").add("u2"); commit(); > {code} > currently fails with a conflict because {{fo}} is not the same node for the > both cases. See discussion http://markmail.org/message/flst4eiqvbp4gi3z -- This message was sent by Atlassian JIRA (v6.2#6252)