[
https://issues.apache.org/jira/browse/SLING-3279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13846839#comment-13846839
]
Carsten Ziegeler commented on SLING-3279:
-----------------------------------------
Ok, actually these are three things:
a) provide an alternative JcrResourceListener directly using Oak feature
b) Thinking about event listening/delivery optimization
c) Optimizing thread usage
The no. 1 prio is of course on a) and as I wrote, these needs to be done in a
compatible way. So I suggest we do this first
Just for completeness: as mentioned c) should be easy and b) is reall
questionable as I know that we have a lot of listeners listening for all
changes in the repository. But let's do a) first
> Leverage improved observation support from Oak
> ----------------------------------------------
>
> Key: SLING-3279
> URL: https://issues.apache.org/jira/browse/SLING-3279
> Project: Sling
> Issue Type: Improvement
> Components: JCR
> Reporter: Michael Dürig
>
> OAK-1120 introduces better support for observation, which could be used by
> Sling. For example JcrResourceListener could be rewritten leveraging Oak's
> Observer. Since Oak observers already run on background threads further
> decoupling (like it is currently done) is not necessary. This makes it
> unnecessary to queue potentially a lot of events in Sling. Since neither Oak
> there does queue events (they are generated by need) this will probably
> greatly improve scalability in the face of many events.
> Furthermore OSGi filters could be passed down and translated to Oak such that
> filtering is done much closer to the source of the events.
> Finally instead of using a centralised event dispatcher (like
> JcrResourceListener currently is) it would be better to install a dedicated
> Observer for each OSGi event listener since dispatching is already handled by
> Oak and thread pooling (i.e. assigning threads for dispatching call backs to
> observers) can be controlled through Sling's thread pool support (*). This
> has the further advantage of making individual stats available for the
> listeners through JMX.
> (*) Register an OakExecutor backed by e.g. a Sling thread pool and it will be
> picked up by Oak.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)