[ 
https://issues.apache.org/jira/browse/SLING-3279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13931832#comment-13931832
 ] 

Michael Dürig commented on SLING-3279:
--------------------------------------

bq. is there any chance we can get away with the extra reads done in the 
sendOsgiEvent() method?

If you are referring to the {{nt:file}} normalisation and calculation of 
resource (super) type, then yes we can probably push this into Oak. I left this 
out from the initial patch because I don't know the exact algorithm for 
determining those. If you can sketch the algorithm out for me (e.g. given a Jcr 
Node instance) I'll try to port that to 
{{org.apache.jackrabbit.oak.plugins.observation.NodeObserver}}. 

> 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
>            Assignee: Carsten Ziegeler
>         Attachments: SLING-3279-combined.patch, SLING-3279.patch
>
>
> 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.2#6252)

Reply via email to