Microsoft Velocity is the new framework developed by the Microsoft Corporation related to the performance of the web based applications.
It is used for the Dynamic Scaling of the Web Applications. Dynamic Scaling means our application need not know about the external process, also need not to start any process, any application while adding or removing the objects from the cache.
It is mainly related to caching by which we can save or store the frequently accessed data.
Microsoft Velocity is the new "Distributed Caching Engine" which can be used to store the objects on the fly to the cache memory and whenever required, the objects can be retrieved from the cache. The objects can be stored or removed from the cache on the fly without disturbing the application. In all the scenarios, our Application need not to know about these cached objects.
The Distributed Caching Engine or we can say the Velocity framework will take care of these objects.
First let's talk about the External Cache
1. External Cache allows to pull the cache objects out of the process. It means the cache objects can be stored out of the browser memory as an external server or as external processes- The external process or external server can be the State Server or SQL Server.
So in these servers, we can save the cached data of the applications.
2. By using External Cache the application can be scaled vertically. It means we can store more and more cached objects in the external memory without affecting the application. Also we can use more and more processors as an external component to increase the performance of the application.
3. We can also scale our web application horizontally by using the External Cache i.e. by adding more physical servers (web farm scenario) we can scale-up our application.
So we have seen that there are many advantages of using the External Cache to the web application.
Now we will see where and how the Microsoft "Velocity" is involved with the External Cache to increase the performance of the applications.
Microsoft "Velocity" is used for Dynamic Scaling of the Web Applications. It also used for the Load Balancing of the applications where the data is accessing from the multiple servers in the Web Farm pattern.
First we will see the Installation part of the Microsoft "Velocity"-
1.Microsoft "Velocity" Framework can be installed from the Microsoft Web site on top of the .Net Framework 3.5 onwards.
2. PowerShell version 1.0 should be installed
3. There are few options which we need to set during the installation
a. Cluster configuration options
–SQL Server based
b. Set cache cluster options
Where we can use the Microsoft "Velocity" framework:
1.As we talked about that the Cached data will be saved as an external so the data must be in the serialized format.
There are few terms related to the Microsoft "Velocity" framework which we should know before the use:
1.Cluster- A collection of Cache Hosts is called as Cluster. It is the multiple cache hosts which are linked together and make a Cluster.
2.Cache Hosts- These are the server where the Cache object exists.
3.Named Caches- The name provided by the cache object.
4.Regions- Region is exists in a single server or single velocity server.
5.Cache Items- Cache Items are the objects which are exists in the Regions.
6.Objects- Specified the cache objects.
Microsoft Velocity uses the External Cache object to store the cached data from the multiple clients. The clients can be distributes to different machines or processes. All the clients will see only a single instance of the Cached object. A cache layer will be generated for all the hosts to access the cache objects.
Hope this article will be helpful to you.