You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Oliver Lietz (JIRA)" <ji...@apache.org> on 2017/03/12 19:32:04 UTC

[jira] [Commented] (SLING-6635) Implement LRU Cache for SlingServletResolver

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

Oliver Lietz commented on SLING-6635:
-------------------------------------

Besides LRU we should look at TinyLFU. See:

* [TinyLFU: A Highly Efficient Cache Admission Policy|http://www.cs.technion.ac.il/~gilga/TinyLFU_PDP2014.pdf] (Update: https://arxiv.org/pdf/1512.00727.pdf)
* https://github.com/ben-manes/caffeine/wiki/Efficiency
* SOLR-8241
* etc.

> Implement LRU Cache for SlingServletResolver
> --------------------------------------------
>
>                 Key: SLING-6635
>                 URL: https://issues.apache.org/jira/browse/SLING-6635
>             Project: Sling
>          Issue Type: Improvement
>          Components: Servlets
>    Affects Versions: Servlets Resolver 2.4.10
>            Reporter: Jörg Hoh
>
> During the servlet resolution all results are stored for later reuse in a ConcurrentHashMap. In parallel the maximum cache size is configured and always controlled.
> If this max cachesize is reached, no more results are stored in the hashmap; if the load pattern has changed, this could result in a case, that many/all servlet resolutions are no longer stored in cache.
> It would be good, if the cache employs a LRU strategy to keep often resolved AbstractResourceCollectors in cache and avoid the penalty of cache misses. Limiting the cache size would still be useful and required.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)