[
https://issues.apache.org/jira/browse/SLING-8915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Norman closed SLING-8915.
------------------------------
Closing as i18n 2.5.16 has been released.
> Lazily replace previously cached ResourceBundles on reload when preloading
> enabled
> ----------------------------------------------------------------------------------
>
> Key: SLING-8915
> URL: https://issues.apache.org/jira/browse/SLING-8915
> Project: Sling
> Issue Type: Improvement
> Components: i18n
> Affects Versions: i18n 2.5.10
> Reporter: Dirk Rudolph
> Priority: Major
> Fix For: i18n 2.5.16
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> In the default configuration of the JcrResourceBundleProvider a change to a
> message entry in an already cached ResourceBundle simply removes the cached
> entry. Loading the bundle again with the previous change in place happens the
> next time the ResourceBundle is used, commonly as part of the next request
> serving content with the given locale+basename.
> This works fine as long as loading the JcrResourceBundle is a matter of a few
> milliseconds but in our case loading the bundle takes up to 10% of an
> individual requests effective response time. Additionally we see further
> negative impact as a message entry is in many cases changed not only for one
> locale but for multiple at once.
> Assuming we can enable preloading, I want to propose to instead of removing
> the cached ResourceBundles (clear-and-set), still serve them and replace them
> once the reloaded ResourceBundle is created (replace). It will add the time
> for creating the new instance of the ResourceBundle to the execution of the
> background thread without blocking requests accessing the still valid cache.
> This will work fine for reloading individual bundles [1]. How much sense it
> makes for reloading all bundles I don't have data for yet.
> [1]
> https://github.com/apache/sling-org-apache-sling-i18n/blob/master/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundleProvider.java#L363
--
This message was sent by Atlassian Jira
(v8.3.4#803005)