Per Ivansson
Oct 30, 2008
visibility 10094
star star star star star
(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

Comments

error Please login to comment.
Latest blogs
Optimizely Commerce 14 Now Supports .NET 10

In my previous post, Optimizely CMS 12 Now Fully Supports .NET 10 , I noted one remaining limitation: Commerce 14 (Commerce Connect) did not yet...

Bien Nguyen | Aug 7, 2026

The Top 10 Things I'm Actually Using AI For

A while back I wrote about ReviewPR, an Azure Function that uses AI to review Azure DevOps pull requests. That was one specific use case, but over...

KennyG | Aug 5, 2026

Drag-and-Drop Reordering for Commerce Media Collection in Optimizely Commerce Connect

Optimizely Commerce Connect ships a polished asset editor for the CommerceMediaCollection  property on catalog entries. It lets editors add, remove...

Linh Doan Cuu | Aug 5, 2026

Order tabs with drag and drop V2

I earlier did a very simple Blazor version to be able to sort tabs with drag and drop. I wanted to update it a bit and also display how the tabs ar...

Per Nergård (MVP) | Aug 4, 2026