sling-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dirk Rudolph (Jira)" <j...@apache.org>
Subject [jira] [Created] (SLING-8915) Lazily replace previously cached ResourceBundles on reload when preloading enabled
Date Thu, 12 Dec 2019 16:13:00 GMT
Dirk Rudolph created SLING-8915:
-----------------------------------

             Summary: 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


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

Mime
View raw message