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

Carsten Ziegeler commented on SLING-3380:
-----------------------------------------

To immediately "free" the event object, we could use a Hashtable (the 
properties object for the OSGi event) and already store the relevant 
information (user id, external event) into this one. This object will be 
created later on anyway.
However, this might not change that much as only after the iterator is 
finished, the events are fired.
We could maybe reduce this a little bit and fire add/remove events immediately 
and just collect change events

> Reduce memory footprint of JcrResourceListener
> ----------------------------------------------
>
>                 Key: SLING-3380
>                 URL: https://issues.apache.org/jira/browse/SLING-3380
>             Project: Sling
>          Issue Type: Improvement
>          Components: JCR
>    Affects Versions: JCR Resource 2.2.8
>            Reporter: Michael Dürig
>             Fix For: JCR Resource 2.3.2
>
>
> JcrResourceListener.onEvent(EventIterator) keeps references to all Event 
> instances in the passed iterator. This has turned out as a memory bottleneck 
> e.g. in the scenario where a large sub-tree is copied and NODE_ADDED events 
> for all nodes in that sub-tree are generated. 
> Furthermore Oak will be able to handle arbitrarily large transactions 
> (Session.save). In such cases the EventIterator might contains millions of 
> events.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to