9 June 2008 in Microsoft, Tools | Comments enabled

Reading over the last week shows that there is some strong interest in Microsoft’s new “Velocity” project. What is Velocity? It’s a distributed caching framework to aid in scaling out applications over many servers – for example, an ASP.Net website.

That’s cool.

But, wait a minute, doesn’t this sound exactly the same as what memcached does? Almost the defacto standard for distributed caching and developed many moons ago, memchached powers sites like YouTube, Slashdot, Facebook, NYTimes.com to name a few.

I’m a big fan of what Microsoft creates, in fact I’m building a business that sits on top of what Microsoft builds. I appreciated that the initial blog post even referred to memcached and hints at some of what Microsoft might want to add to their caching system to create some differentiation.

What concerns me here is seeing posts popping up about how cool this framework is from various Microsoft geeks from the “ooo – distributed caching!” perspective. Do they not ever look outside the Microsoft world? Do they not realise this is not new? I think it’s an important discipline for developers to keep looking outside their comfort zone to learn new things. This is by no means something I’m perfect at – it’s a struggle when you’re comfortable with what’s already in front of you but, as the saying goes, you don’t know what you don’t know.

I look forward to the future of the Velocity project and I really hope it’s not just a me too project from Microsoft. You can keep an eye on it by subscribing to their blog.

As a mild plug, our LightSpeed object/relational mapping product has included a memcached provider if you’re building suitably large solutions since version 1.0 :-)


kick it on DotNetKicks.com

Average Rating: 4.9 out of 5 based on 265 user reviews.

8 comments. Add your own comment.

Dave5 says 9 June 2008 @ 12:42

I agree… looking outside your ghetto is a very important skill. Sadly it’s one we’re not taught and in my experience of ghettos one that’s not really encouraged.

Neal says 9 June 2008 @ 15:23

Seems memcached is flavour of the month – Ayende has just been posting about his new project; a .net port of memcached.

traskjd says 9 June 2008 @ 15:31

@Dave5 – certainly not encouraged :-)

@Neal – Yeah I saw that, although there are already .NET ports of memcached I think. I’m sure Velocity was what prompted him to do the port so he can belittle the Microsoft effort when it goes 1.0 (seems a common trend but it does provide some amusement from an onlookers point of view :-) )

Now he just needs to release Rhino CRM and he’ll be set!

– JD

Greg Beech says 10 June 2008 @ 04:41

Distributed caching may not be new, but distributed caching with a full support contract and engineers who any problems can be escalated to and fix if you notice live issues is.

If something goes wrong with memcached on your live site or you notice a critical bug that didn’t manifest itself during testing, e.g. something due to environmental factors, then who can you call to fix it? Nobody. You have to open up a load of C that you didn’t write and is barely documented and try and work out the problem.

The issue with many of these things isn’t the lack of availability, it’s the lack of availability with a support contract from a company with a proven track record of fixing customer issues in a decent timeframe.

Bill Bain says 10 June 2008 @ 04:43

ScaleOut Software also has been delivering fully featured, scalable, highly available distributed caching for .NET since January, 2005. The key features that Microsoft has listed for release in CTP2 and V1 (and others which will not be available in V1) are available today in ScaleOut StateServer. SOSS is also self-configuring and self-healing as a fully peer-to-peer architecture. SOSS is also very cost-effective at about $1K/server. Please see our Web site’s press release (http://www.scaleoutsoftware.com) for our response to the Velocity announcement.

Unlike memcached (unless it has evolved recently), SOSS provides automatic object partitioning across the caching servers, and it also provides automatic replication for high availability. This means that you can add or remove caching servers without reconfiguring. When you include self-discovery. self-healing, parallel query, GUI management, and numerous other features, I think you will find that SOSS makes distributed caching much easier to use.

foobar says 12 June 2008 @ 05:01

Velocity will eventually support replicated caching. Memcached does not do this. Memcached is essentially a non-thread safe hashtable (not that there’s anything wrong with that), so if you need something more, it’s not really suitable.

Josh says 4 August 2008 @ 21:49

NCache has been the caching solution of choice for various mission critical applications throughout the world since 2005. Its scalability, high availability and performance are the reasons it has earned the trust of developers, senior IT and management personnel within high profile companies. These companies are involved in a range of endeavors including ecommerce, financial services, health services and airline industry.

The range of features that NCache currently showcases is highly competitive and revolutionary. It supports dynamic clustering, local and remote clients, advanced caching topologies like replicated and mirrored, partitioned and replicated partitioned. It also provides an overflow cache, eviction strategies, read-through and write-through capabilities, cache dependencies, event notifications and object query language facilities. What Microsoft is promising for CTP 2 and later releases is already there in NCache. For a complete list of features and details please visit http://www.alachisoft.com/ncache/index.html.

Download a 60 day trial enterprise/developer version or Totally Free version called NCache Express from http://www.alachisoft.com/download.html

Team NCache

Keith says 24 January 2009 @ 07:50

I’m sure MS knew of distributed caching. ScaleOut State Server was a commercial option that addressed this need.

In reality, MS-SQL caching, Enterprise Library Caching, IIS Caching, and .NET caching provide sufficient performance for most apps without distributed caching.

Memcached was largely a reaction to the caching and performance inefficiencies of MYSQL/InnoDB, and thus necessary. Distributed Caching was hardly necessary even to run the largest sites on MS/.NET.

Leave a Comment

Name (required)

E-mail (required - not published)


Your comment: