Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

maximbaibakov
Copy link

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
Copy link

magento-cicd2 commented Oct 1, 2018

CLA assistant check
All committers have signed the CLA.

@naydav
Copy link

naydav commented Dec 9, 2019

Hello @maximbaibakov,

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

@tmotyl
Copy link

tmotyl commented Aug 3, 2020

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