Skip to content

Added extra layer of caching / reduce load on Redis#19

Open
maximbaibakov wants to merge 1 commit into
magento:masterfrom
maximbaibakov:reduce-redis-utilisation
Open

Added extra layer of caching / reduce load on Redis#19
maximbaibakov wants to merge 1 commit into
magento:masterfrom
maximbaibakov:reduce-redis-utilisation

Conversation

@maximbaibakov

Copy link
Copy Markdown

Zend_Locale_Data returns a formatted locale string based on the input.
Once string is proceed it stored into cache storage File or Redis or Memcache or MySQL.
Every time someone is asking for the same formatted locale string, it will get it from cache.

However, if the same execution is asking for the same locale string, it always looking into the cache storage. Ideally, we can store result in temporary variable to reduce the load on remote cache storage.

Example:

  • There is a booking website
  • There are number of providers who have their open hours
  • Zend_Date function is in use to present data in correct locale
  • Open hour from each provider going via Zend_Date function to display the right date / locale.
  • Page has about 20-50 providers, in some cases, the number of calls to cache storage (e.g. Redis) could jump to 22,000+ on page load.

This commit introduced a temporary variable to store a cache for a single page load.

Zend_Locale_Data returns a formatted locale string based on the input.
Once string is proceed it stored into cache storage File or Redis or Memcache or MySQL.
Every time someone is asking for the same formatted locale string, it will get it from cache. 

However, if the same execution is asking for the same locale string, it always looking into the cache storage. Ideally, we can store result in temporary variable to reduce the load on remote cache storage. 

Example:
- There is a booking website 
- There are number of providers who have their open hours
- Zend_Date function is in use to present data in correct locale
- Open hour from each provider going via Zend_Date function to display the right date / locale. 
- Page has about 20-50 providers, in some cases, the number of calls to cache storage (e.g. Redis) could jump to 22,000+ on page load.

This commit introduced a temporary variable to store a cache for a single page load.
@magento-cicd2

magento-cicd2 commented Oct 1, 2018

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@naydav

naydav commented Dec 9, 2019

Copy link
Copy Markdown

Hello @maximbaibakov,

Thank you for contribution. We begin to process the PR.

@tmotyl

tmotyl commented Aug 3, 2020

Copy link
Copy Markdown

FYI, In OpenMage we have included similar optimization already
See file https://github.com/OpenMage/magento-lts/blob/1.9.4.x/lib/Zend/Locale/Data.php

@maximbaibakov

Copy link
Copy Markdown
Author

Hey @tmotyl nice!
Hey @naydav do you have any update on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants