[ 
https://issues.apache.org/jira/browse/SLING-5277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexander Klimetschek updated SLING-5277:
-----------------------------------------
    Attachment: SLING-5277.patch

Here is a patch: [^SLING-5277.patch]

This makes use of ThreadLocal.initialValue() to create the per thread resolver 
on demand. Quick testing improves performance (as the session is no longer 
cloned immediately and upon hitting the cache is never cloned apparently). 
Should be properly tested though, also in line of SLING-3441.

> Performance: per thread script resolver (admin session) is always created 
> even if cache is hit
> ----------------------------------------------------------------------------------------------
>
>                 Key: SLING-5277
>                 URL: https://issues.apache.org/jira/browse/SLING-5277
>             Project: Sling
>          Issue Type: Bug
>          Components: Servlets
>            Reporter: Alexander Klimetschek
>         Attachments: SLING-5277.patch
>
>
> Since SLING-3441, for every request, a new admin / privileged session is 
> [created in the 
> SlingServletResolver|https://github.com/apache/sling/blob/trunk/bundles/servlets/resolver/src/main/java/org/apache/sling/servlets/resolver/internal/SlingServletResolver.java#L532].
>  It is created before the script/servlet cache is checked, so in most cases 
> when the cache is hit it is never used, but the cost of creating an extra 
> session (which can vary, especially with concurrent traffic) is incurred.
> The per thread script resolver can be created lazily instead of directly in 
> the event to avoid this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to