A critical vulnerability was discovered in React Server Components (Next.js). Our Systems Remain Fully Protected. Learn More

Per Ivansson
Oct 30, 2008
  9773
(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

Please login to comment.
Latest blogs
Jhoose Security Modules v2.6.0 — Added support for Permissions Policy and .NET 10

Version 2.6.0 adds Permissions Policy header support, updates to .NET 10, improved policy management, configurable security settings, and enhanced...

Andrew Markham | Dec 6, 2025 |

Building a 360° Customer Profile With AI: How Opal + Optimizely Unlock Predictive Personalization

Creating truly relevant customer experiences requires more than collecting data—it requires understanding it. Most organizations already have rich...

Sujit Senapati | Dec 4, 2025

Building a Lightweight Optimizely SaaS CMS Solution with 11ty

Modern web development often requires striking a difficult balance between site performance and the flexibility needed by content editors. To addre...

Minesh Shah (Netcel) | Dec 3, 2025

Creating Opal Tools Using The C# SDK

Over the last few months, my colleagues at Netcel and I have partaken in two different challenge events organised by Optimizely and centered around...

Mark Stott | Dec 3, 2025