Per Ivansson
Oct 30, 2008
(0 votes)

Distributed Memory Caching in EPiServer Community using Velocity

It´s the last day of PDC2008 and I've been to a lot of sessions by now. The Cloud is everywhere... One session I really think stood out was the one about the Velocity project. We have looked on Velocity, Memcached and other similar distributed memory caching systems for a while now as one comparatively low investment to improve performance and scalability of EPiServer Community. One benefit of having a distributed "central" cache instead of, or in addition to, having local caches on each web server is that it reduces database calls when the cache is invalidated and needs to re-populate from persisted data.

For example: Say that you have five web servers in your cluster. When a cache is invalidated, it propagates throughout the cluster and one separate call from each web server has to made to the database to populate the local cache again. That is five roundtrips to the database to retrieve the exact same data. The more web servers in this setup, the higher the load on the database server. With a distributed cache, the distributed cache would populate itself from the persisted data only once, and concurrent requests from the web servers would use that cache instead of query the database themselves.

Velocity have some nice features beyond the basics. For example: It's fully scalable. You may just add machines as you go along as the sync between them is handled automatically. You can configure consistency vs availability of data by defining number of fail over nodes etc.. Another cool thing is that it supports tagging of cached data so that you retrieve collections of cached objects by their tagging. Even cooler is that is supports Linq, so you can actually write queries that filter and returns data directly from the cache. Everything can of course operate in that Cloud of theirs...

A fully scalable cache repository that you can query using Linq, opens quite interesting possibilities for high transactional applications such as EPiServer Community and we will surely look into this in the very near future. The current state of Velocity is CTP2. CTP3 will be released Q1 2009 and the first release is expected Q2/Q3 2009.

Oct 30, 2008


Please login to comment.
Latest blogs
Customizing Property Lists in Optimizely CMS

Generic property lists is a cool editorial feature that has gained a lot of popularity - in spite of still being unsupported (officially). But if y...

Allan Thraen | Oct 2, 2022 | Syndicated blog

Optimizely names Luminary Senior Developer, Ynze Nunnink, OMVP

Luminary Senior Developer and Optimizely Lead, Ynze Nunnink has secured the coveted position of Optimizely MVP. Earning a Platinum badge for his...

Ynze | Oct 2, 2022 | Syndicated blog

Content Delivery API – The Case of the Duplicate API Refresh Token

Creating a custom refresh provider to resolve the issues with duplicate tokens in the DXC The post Content Delivery API – The Case of the Duplicate...

David Lewis | Sep 29, 2022 | Syndicated blog

A multi-brand strategy in Optimizely DXP

The Optimizely Digital Experience Platform (DXP) is ideally suited to digital projects featuring multiple websites or applications. Here, we showca...

Ynze | Sep 29, 2022 | Syndicated blog