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

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

bq. 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.

AFAICS this would do away with the references on Event instances much earlier. 
Sounds like a good start. Let's do this first and assess its impact before we 
move on to more sophisticated optimisations. 

> 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