The open source project, Memcached, is a common staple for many of the largest Web sites including facebook, twitter, wikipedia, and others. The enterprise software vendors haven entered the market and have added features that are more attractive to enterprise IT - especially to Java shops.

In recent months, we have had a significant uptick in client inquiries about distributed cache technologies and how they can be used to improve performance, scale, and reduce costs of Web and application architectures. We are also encountering distributed cache technology in conjunction with other platform technologies such as CEP. There is also an intriguing potential for distributed cache technology to become a staple of cloud computing environments (some might say amazon S3 has the properties of a distributed cache).

Based upon this increasing level of interest, the maturity of the products, and the potential of distributed caches to radically change they way applications are architected John Rymer and I have initiated a Forrester Wave evaluation of Distributed Cache technologies.Our current list of candidates to evaluate include:

Alichisoft NCache

Gemstone

Gigaspaces

IBM ExtremeScale

Memcached (we may also include Gear6 and Schooner since they support memcached)

Oracle Coherence

Red Hat

Terracotta

Are There Any Other Products We Should Include?

These are the products that we have encountered when speaking with both vendors and customers. Are there any others that you think should be on this list? For example, should Amazon S3 make our list or are there any other commercial products that are available?

We Would Love To Hear From Customers Who Are Using Any Of These Products.

If you are a client using any distributed cache technology we would like to speak with you about your experiences with these products and the business and technical requirements that drove you to implement the technology.

Comments

Mike, John, to add on to what I said when we communciated and what I wrote on my blog:To properly setup and use truly distributed caching for Java or other applications requries top-notch system programming skills. It requires to add code to existing applications in virtually all cases. Therefore our Papyrus Platform utilizes an embedded distributed database AND replicated cache as a core function that is completely transparent to developers and system administrators. We do not rely on any of the products mentioned. Thus all Papyrus customers utilize this function and they do not even know about it.Finally, another important area that typical distributed caching does not cover is caching for SOA-based data replication. The Papyrus object replication and caching mechanism provides that as an embedded function when linked with our messaging adapters.Look forward to your report, as this is an extremely important subject for scalable applications. Thanks!

Twitter has yield some additional suggestion:Velocity - This is a Microsoft project on distributed cache for .NET. We were already aware of this technology, but it has not made our list because it is not yet a product.ActiveSpaces by TIBCO - We were also aware of this product but it is not yet released.RNA Networks - We never heard of this one.It looks interesting.

Very interesting topic.If you are going to cover Gear6 and Schooner then you might as well include Virident Systems while you're at it.Regarding Hadoop, I don't believe it really falls into the category of a "distributed cache technology". But check with Christophe Bisciglia at Cloudera. He may have some ideas for you.

This would be quite useful to a number of customers who understand the value but are still having a tough time wading through deluge of open source and commercial offerings.For one, with many of our customers, the value of the product goes well beyond caching. The general perception of a cache is like a L2 cache. It is completely transparent and offloads access to RAM to speed things up. So, it is like saying the backend data source is always available when using the cache. You change something it synchronously moves back to the DB. On a cache miss, you can always access the DB and populate the cache lazily. But, in practice, what you will find is products like Coherence (data grid) and GemStone GemFire (data fabric) being used in a more disconnected fashion. i.e. the transactions as they happen are stored no where else, but, only in the fabric (reliably, perhaps in memory on multiple nodes or even persisted to disk). And, the transactions are batched, conflated and written back to one or more enterprise repositories asynchronously. Essentially, for a period of time, the cache is the store of record.On top of this, if you get a chance to talk to financial institutions you will also find a number of them using the reliable event notification capabilities in such highly distributed products a much better fit than using messaging products. CEP (continuous querying) is a natural fit on top of this.

Excellent entry. There is one more feature-rich distributed caching solution that I think worth mentioning. Hazelcast! It is new, easy, highly scalable, p2p and open source. It is a little more than a cache though.Talip OzturkFounder, Hazelcast.