Feature

AppFabric Cache

Coherence

memcached

Redis

Terracotta

eXtreme Scale

Version RC 3.4.2 1.2.8 1.2 3.0 7.0

API

CRUD Operations
(Create, Read, Update and Delete)
red check red check red check red check red check red check
Cache Object
Type
Serializable CLR Object, Data Contracts,
Byte[]
Multiple serialization formats API converts objects to string String, List of Strings, Set of Strings,
Sorted Sets
Any Java Object Multiple serialization formats
Supported
Client Languages
.Net Languages Java, C++, C#, VB.Net, Delphi, Jscript Perl, C, C#, PHP, Python, Java, Ruby PHP, Ruby 1 Java Java, .Net languages
Named Cache
Support
red check red check red check
Tag Based query 2 red check red check red check
Concurrency API Optimistic & Pessimistic Locking Optimistic & Pessimistic Locking. Transactions
Support
Supported using Java Concurrency Semantics Optimistic & Pessimistic Locking
Continuous
Query Support
red check
Cache Notifications red check3 red check red check
Eviction red check red check4 red check red check red check red check5
Persistence red check red check red check red check

IDE Integration

Supported
IDE
Visual Studio Visual Studio, Eclipse Eclipse Eclipse

Supported

Topologies

Partitioned red check red check red check6
Primary/Backup Replicated red check red check red check red check red check
red check red check red check
Near Cache
/ Local Cache
red check red check red check7 red check red check
Dynamic
Cluster Membership
red check red check red check
Sessions
.Net Session
State Provider
red check red check red check8
Java Sessions red check red check red check

Failover

Failover
Support (High Availability)
red check red check red check red check

Security

Secure
Cache Support
red check red check red check

Monitoring

& Administration

Command
Line Tooling
red check red check red check red check red check red check
Cluster
wide management
red check9
GUI to
monitor cluster and clients
red check10 Third party tooling 11 red check
Integrations with external monitoring tools ETW, PerfMon JMX based integration JMX based integration Tivoli, Wily, Hyperic HQ

Extensibility

Read Through,
Refresh Ahead, Write Behind, and Write Through 12
red check red check red check
Explicit
Data Affinity
red check13 red check red check
Cache Embedded
code
red check14 red check red check

Other

Object
Size Limit
None None 1 megabytes None None None
Cache Composition Client can be any supported language.
Server node is .Net
Client can be any supported language.
Server node is Java
Client can be any supported language.
Server node is C++
Client can be any supported language.
Server node is C
Client and Server are Java processes Client can be any supported language.
Server node is Java
Product
Editions
Part of Windows Standard, Enterprise and Grid (Commercial
License)
Single edition with all features (free) Single edition with all features (free) ES (Free), EX and FX (Commercial License) Single edition with all features (Commercial
License)
1. Only PHP and Ruby support both Sharding and Pipelining currently which was reported to be used in the Redis POC. Other supported languages which support one or neither of these features include ActionScript, Java, Perl, Python, Scala and TCL
2. Tag based queries let you search for objects with a tag. Coherence Filter support can be used for this. eXtreme Scale can use EntityManager to search for objects but can be expensive
3. Velocity notifications are polling based and not real time. Coherence supports both Synchronous and Asynchronous notifications
4. Coherence supports eviction by memory usage and number of objects in Cache
5. eXtreme Scale supports eviction by emeory usage and optionally by TTL, LRU and LFU
6. Terracotta does not have a partitioned cluster feature. Mirrors can stripe the data across multiple servers
7. Only in client languages which support sharding (PHP, Ruby, Scala)
8. A memcached session state provider is available as a codeplex project
9. Velocity administration is done using Windows PowerShell and includes a rich set of commands that support cluster-wide operations
10. An AppFabric Cache GUI tool to monitor the cluster and clients is available as a codeplex project
11. Evident Software’s ClearStone Live is a third-party tool that provides GUI monitoring
12. Redis can be configured to write every change into an append only file
13. Named regions in AppFabric Cache can be used for Explicit Data Affinity
14. Coherence supports InvocableCache in .Net, EntryProcessor, and EntryAggregator. These allow node-based processing
Portions used with permission from Grid Dynamics

Scaling .Net Web Applications with Microsoft’s Project Code-named “Velocity”

A Technical White Paper by Grid Dynamics September 1, 2009