View Issue Details

IDProjectCategoryView StatusLast Update
0006340OXID eShop (all versions)4.08. Cachepublic2016-07-01 12:46
Reporterkeywan.ghadami Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status confirmedResolutionopen 
Summary0006340: Varnish cachemisses causes by oxenvkey
Descriptionthe oxenvkey cookie create by the oxreverseproxybackend implementation is generated globally for all controllers and widgets. This is an performance and a that for an architectural issue. Because for each change affecting this global cachekey (e.g adding something to the basket), following request can not get a cachehit. This means varnish produces a lot (around (2^9)*pages(categories+articles+cms...)) of cache misses. Warming up that cache is nearly impossible because you would have to generate all possible cachekey combinations and caching will become inefficient by high memory usage.

The suggested solution:
The cachekey must be generated in the controllers (widgets), because it is there responsibility to say on what they vary. Normal controllers for e.g. for articles and categories should not vary on anything but the url.
Steps To ReproduceWith varnish
- clear the varnish cache,
- visit a specific category page (cachemiss => ok)
- visit a the same category page a second time(cachehit => ok)
- add something to the basket
- visit a the same category page again (cachehit miss)


Additional InformationFor the easy usecase (user is not logged in and does not addings something to basket) varnish implementation is good and we get about 50ms responsetime with some tunings. But caused by this issue there is a high risc that users as soon the do something on the site will have a terrible performance because all pages and widgets are not cached.

When you have no cachehit other problems like that varnish will fetch things sequentially ( bug in varnish ), or some thrid party plugins slowing down the widget rendering will double the problem.

TagsPerformance, Varnish
ThemeNot defined
BrowserNot defined
PHP VersionNot defined
Database VersionNot defined

Activities

There are no notes attached to this issue.