Microsoft “Velocity” is the code name for their new Distributed Cache Tool. Distributed Cache is about making your application data available on a Distributed Environment means a set of Physical Servers in a Web Farm scenario or in a Distributed multi layer system. This articel is about an overview of "Velocity" will provide more detailed articles in next coming months.
Introduction
Microsoft “Velocity” is the code name for their new Distributed Cache Tool. There are many Distributed Cache Software’s out there in market, so why Microsoft is coming up with this new one?
Before that we should understand about Distributed Cache. It is about making your application data available on a Distributed Environment means a set of Physical Servers. ASP.NET comes with a set of options to make Session Distributed but none of the models have good flexibility on Cache API and Flexibility. Below are some of the differences comparing Distributed Cache Vs Others.
Disributed Cache Vs Others
|
In Process |
ASP State Server |
SQL State Server |
Distributed Cache |
|
Scalability |
Not Scalable |
Can be scaled up to 1 server only |
Can be scaled up to 1 server only |
Can be scaled up to N servers |
|
Availability |
Session information lost if the worker process is restarted |
State is maintained on a single server, and thus a single point of failure |
Supports failover clusters |
State can be maintained on a different server, and thus supports multiple failover clusters |
|
Performance |
Fastest to Read and Write |
Slower than In-Process |
Slowest method |
Faster than SQL state servers |
|
Deployment |
Easy to Configure |
Easy to Configure |
Complex to setup and maintain failover clusters and mirroring |
Easy to Configure for Simple mode. Need little expertise to configure Router cluster mode |
|
Cache API |
Custom static objects or ASP.NET Web Cache |
No API. Only Session data will be persisted |
No API. Only Session data will be persisted |
Cache/Session API |
|
Memory Usage |
More Memory. Saves all Session and Cache data per App Pool |
Less Memory when compared with In Process. Since the Session data is placed on different server |
Less Memory when compared with In Process. Since the Session data is placed on different server |
Less Memory when compared any other modes. Since Session data and Cache data are saved on different servers |
Microsoft has strongly putting their efforts to make Microsoft “Azure” a new cloud computing platform to be a platform for Highly Available, Reliable & More Performance Tuned. Distributed Cache is one of proven pattern in today’s distributed application to provide all the above options and “Velocity” will help to integrate all Microsoft related Software’s and Tool’s to Distributed Cache without any difficulty.
Comparision With Other Softwares
Below are some of the differences when compared with other tools which are available today for Distributed Cache.
"Velocity" Features
Microsoft “Velocity” went through different cycles of testing & user acceptance. CTP3 is the latest version release to Public but for Corporate Users next version is also available. It is also moved to “Beta1” as part of Windows Server AppFabric and also as part of Application Server Extensions for .NET 4.0
Below are the features provided by Microsoft “Velocity”
· Caches any serializable CLR object and provides access through simple cache APIs.
· Supports enterprise scale: tens to hundreds of computers.
· Configurable to run as a service accessed over the network
· Supports dynamic scaling-out by adding new nodes.
· Backup copy provides high availability.
· Automatic load balancing.
· Integration with administration and monitoring tools such as PowerShell, Event Tracing for Windows, System Center, etc.
· Provides seamless integration with ASP.NET to be able to cache session data in without having to write it to source databases. It can also be used as a cache for application data to be able to cache application data across the entire Web farm.
· Follows the cache-aside architecture (also known as Explicit Caching) for V1. That is, you must decide explicitly which objects to put/remove in your applications and the cache does not synchronize with any source database automatically.
Conclusion
Below are some of the scenarios where Microsoft “Velocity” fits in.
· Application Tier in Windows / Web
· UI Tier in Web
· Data Access Tier in Windows / Web
· Large Scale Enterprise Tools / Services
Will provide few more articles on using Microsoft "Velocity" in the coming days.