[
https://issues.apache.org/jira/browse/OAK-6455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16096696#comment-16096696
]
Robert Munteanu commented on OAK-6455:
--------------------------------------
Discussing offline Tomek and myself came with the idea of running observers
asynchronously. We can use a queue to store observation events and then fire
them in an async manner. Of course, this comes with the classic problem of the
consumer not keeping with the producer, leading to the sort of problems we're
familiar with in Oak.
An open question is whether we can reuse some of the infrastructure code that's
been added to handle this situation. Ideally we won't roll our own.
> Don't call observer concurrently from the CompositeNodeStore
> ------------------------------------------------------------
>
> Key: OAK-6455
> URL: https://issues.apache.org/jira/browse/OAK-6455
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: composite
> Reporter: Tomek Rękawek
> Assignee: Tomek Rękawek
> Fix For: 1.8, 1.7.4
>
>
> Per Observer interface
> {noformat}
> However, each observer is
> * always guaranteed to see a linear sequence of changes. In other words the
> * method will not be called concurrently from multiple threads and successive
> * calls represent a linear sequence of repository states, i.e. the root
> * state passed to a call is guaranteed to represent a repository state
> {noformat}
> Currently concurrent merge would result in concurrent calls to Observer. So
> that would need to be serialized
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)