Last week I heard about a new project from Microsoft code-named Velocity. You can think of Velocity as Microsoft’s version of the very popular memcached:
“Velocity” is a distributed in-memory cache that provides .NET applications with high-speed access, scale, and high availability to application data.
Basically it’s a backend technology that helps to make websites perform better. Instead of accessing the database every time a page is requested, the website can often get the data it needs from the cache which is much faster than accessing the database.
ASP.NET has had caching built-in for years, but it doesn’t work in a server farm. That is, if you have more than one web server, there’s no way for all of them to share the same cache. Velocity makes that possible. For a good technical overview of Velocity, check out this post from Dare Obasanjo. Also check out Scott Hanselman’s podcast interview with two of Velocity’s architects.
We use memcached in Podcast Spot, and we’ve been very happy with it. It’s simple, efficient, and does just what we need it to do. Of course, our memcached installation is no where near the size of Facebook’s. I’ve read in a few places in the past that they run a 200 server cluster with 3 TB of memory solely for memcached. I’m sure it has grown since then too.
I have no idea how well Velocity will perform compared to memcached, or even if it’s full of bugs or not! I am eager to play around with it though, and it’s a project I’ll definitely be keeping an eye on. Velocity is a project from Microsoft that is long overdue, in my opinion.