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

Create single caching layer for all static information (ie, DI config, "component" objects, etc.) #8329

Closed
wants to merge 11 commits into from

Conversation

diosmosis
Copy link
Member

Work in progress.

This PR intends to use a proper cache for the DI container so definitions will be cached, and to replace all other caches for 'static' information (such as Dimensions, Reports, etc.) w/ DI. This should create a single caching layer for this information that users can configure through INI config.

TODO:

  • Add new definition source for components (ie Reports, Dimensions, etc.).
  • Test Piwik when using a cross-process static cache. Including INI setting change + plugin activate/reload. Definition sources that provide runtime data should reset the static data cache.
  • Benchmark. (benchmarking tracking should be enough, it's the only part of Piwik that will be truly affected by DI caching, and if tracking is OK, then all other requests should be OK).
  • create 'auto' static cache backend option that detects available caches and picks the best. this should be the default.
  • replace components.classes. DI requests w/ DI injected instances and see if performance degrades

@diosmosis diosmosis added c: Performance For when we could improve the performance / speed of Matomo. c: Platform For Matomo platform changes that aren't impacting any of our APIs but improve the core itself. Pull Request WIP Indicates the current pull request is still work in progress and not ready yet for a review. labels Jul 11, 2015
@diosmosis diosmosis self-assigned this Jul 11, 2015
@diosmosis diosmosis added this to the 2.15.0 milestone Jul 11, 2015
@diosmosis diosmosis force-pushed the components_in_di branch 2 times, most recently from bfc330a to 51c6c6d Compare July 13, 2015 05:52
@diosmosis
Copy link
Member Author

Moving to 3.0, not needed for LTS version.

@diosmosis diosmosis modified the milestones: 3.0.0, 2.15.0 Aug 20, 2015
diosmosis added 11 commits September 10, 2015 15:01
…r through new INI config settings, [Cache] static_cache_backend. The setting, for now, has no effect.
…al, StaticCacheFactory. The class is reused in DI config so only one cache will be created per backend type.
… data (this is the recommended cache per php-di's docs).
…use for VisitDimensions as proof of concept.
…hat shouldn't be instantiated immediately and use DI to load list of commands.
…ponents and replace uses w/ components.etc... DI key.
…nt with DI and remove related unneeded code in both classes.
@mattab mattab modified the milestones: 3.0.0, Mid term Feb 8, 2016
@mattab
Copy link
Member

mattab commented Jul 25, 2016

Thank you for this proposed pull request.

Because it was last updated more than one month ago, it is our policy to close pull requests opened for a long time without updates. If you would like to continue work on the pull request, please simply ping us to have it re-opened (after you have pushed a new commit).

We hope you understand this and we look forward to seeing an update from you on this pull request or another one!

Thanks.

@mattab mattab closed this Jul 25, 2016
@diosmosis diosmosis deleted the components_in_di branch June 21, 2017 21:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: Performance For when we could improve the performance / speed of Matomo. c: Platform For Matomo platform changes that aren't impacting any of our APIs but improve the core itself. Pull Request WIP Indicates the current pull request is still work in progress and not ready yet for a review.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants