What are the benefits of Clustering?
Clustering as understood by me is the grouping of two or more servers so that their combined power can be utilized for enhanced performance as well as for providing better data storage. I want to have a comparison between the advantages and disadvantages of clustering, so as to decide whether to use clustering in the enterprise applications or not. Anyhelp in this regard will be highly appreciated.
Some benefits of Clustering
Distributed Enterprise applications greatly benefit from the concept of clustering as well as caching.
Same data that is required repetitively by applications instead of being created again for each time it is required can be kept in a cache after initial creation from where it would be available to all the nodes in a cluster, hence minimizing the data access operations as well as the the processing and time required for its creation and transportation.
As the number of users increase, the performance would be effected negatively. Clustering solves this as the load of increasing users can be evened out on all the nodes of the cluster.
Combined resources of all the nodes of a cluster would greatly boost the performance, as well as allow flexible scalability.
Another node can take on the responsibilities of a node that expires without letting the affect of the expired node to be felt by the users.
Caching provides better data management as well as fast data access.
Efficient recovery from any sort of malfunction is possible.
benefits and limitation of Clustering
• Reduced single points of failure through Exchange Virtual Server (EVS) failover functionality.
• Ability to perform maintenance and upgrades with limited downtime.
• Ability to easily scale up your cluster to a maximum of seven active EVSs.
Clustering does not provide protection from:
• Shared storage failures.
• Network service failures.
• Operational errors.
• Site disasters (unless a geographically dispersed clustering solution has been implemented).
How NCache helps in clustering?
When an enterprise web application is accessed by multiple users at a time, mostly a load balancer is used to balance the workload among the servers. In typical scenario once a user accesses the application, a state session is created. Next time when the same user accesses the application, it will have to wait for the access to the same server as his session state is present there, not on any other server. Here the use of the load balancer fails.
While using NCache, the servers are clustered and have a shared cache. Now when a user utilizes the application, the session state is placed in the shared cache. Now the load balancer can direct the user to any server in the cluster for future entries as all will have access to the session state of that user through the shared cache.
Now the load balancer can equally utilize all the nodes in the cluster (servers) and spread workload evenly. There is no single-point-of-failure, if one server goes down, there is no interruption felt by users as other servers take its responsibilities through the shared cache. Data accession is faster hence enhancing the performance.