November Happy Hour will be moved to Thursday December 5th.

Pluggable cache across the entire EPiServer platform so we can use distributed caches

Vote:
 

We need a pluggable cache for EPiServer. This would allow us to use custom distributed caches like for instance Redis or similar which would make load balanced environments a breeze to use. In the last 8+ years i have not done a single server EPiServer site because of high availablity demands and it is sometimes a pain to setup the event system to make episerver work across multiple servers.

This cache needs to be the same implementation across the entire platform, cms and commerce, instead of each subsystem using a custom cache implementation. As it is right now, especially commerce, uses different caching mechanisms for different subsystems, like business foundation uses one cache (which basically doesn't work in a load balanced environment because it doesn't cache invalidate across multiple servers), meta data plus uses another system and the catalog system uses a third implementation and the list goes one.

Also don't use AppFabric cache or whatever they call it now if you are going to provide example implementations as it is deprecated and Microsoft recommends everyone to use Redis anyway :)

#118904
Mar 17, 2015 10:00
Vote:
 

On version 8.12.0 all of commerce should be using ISynchronizedObjectInstanceCache.  You should then be able to create a redis implementation of ISynchronizedObjectInstanceCache that will just read and write to the distributed cache.  Then just configure in init module to use your redis implementation.

#119268
Mar 25, 2015 16:46
Vote:
 

That sounds great Mark, really looking forward to that :)

#119270
Mar 25, 2015 19:38
Vote:
 

This was released in 8.11.1

#120177
Apr 13, 2015 11:37
Vote:
 

Will download and take a look asap, thanks Mark.

#120178
Apr 13, 2015 11:42
Vote:
 

Unfortunately the whole distributed cache thing fell flat on its back because a lot of the objects that EPiServer caches have circular references and therefor cannot be serialized/deserialized in a meaningfull way. Also it seems as if some of the cms objects are marked as serializable but some are not, and with commerce the situation is much worse (MetaClass for example from meta data plus).

This would mean that only some of the objects used by EPiServer can be cached, and the amount of code and cpu cycles needed to figure out if an object could be cached in a distributed cache would be non-trivial. 

So until an immutable value object cache is in place for cms/commerce i don't think this is doable in a non-hackish way, all objects cached needs to be able to be serialized/deserialized so it can be transfered to/from a distributed cache.

#121803
May 18, 2015 8:17
Vote:
 

Hey Thomas,

I realise this is an old thread but did you overcome this problem?

Thanks

Adam

#143136
Jan 13, 2016 13:43
This thread is locked and should be used for reference only.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.