Michael Dürig created SLING-3279:
------------------------------------
Summary: 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)