rss feed Rss FeedAsp.net Coder
learn asp.net & visual studio 2008,this blog share our study record.there are a lot of solution and source code of building web application using asp.net

Why use Clustering?

Author:ben  PostAt:Wed, 26 Nov 2008 08:57:33 GMT Posted In:Architecture
Q:

I've read over the web that enterprise level applications demand increased availability and flexible scalability of services. So if we group two or more servers so that their combined power can be utilized for enhanced performance as well as for providing better data storage, such a solution is known as clustering where each server in the cluster is called a node.

I want to know the pitfalls and benefits involved in the clustering. How clustering can be helpful in enterprise applications? What are the secondary options available if not use clustering at all?

A:

Enterprise applications especially when they are distributed 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.
Availability is further possible as the nodes of a cluster can survive the hardware mishaps, network latency or web service problems due to the combined power of their resources.
Work load is balanced consistently across all the nodes of the cluster, hence, avoiding stress on a single node which might lead to its crashing.
Caching in a cluster provides better data management as well as fast data access.
Efficient recovery from any sort of malfunction is possible.

A:

The enterprise applications usually process heavy number of requests at any given time, so one machine does not suffice in such situation. You have to deploy your application in the server-farm consisting of multiple machines to share the load.

But the problem is with the load balancing mechanism. When the first request comes we may point it to any server that has lesser number of tasks, but from there, we won't know which server will take the second request. One of the solutions is to use “Sticky Sessions” so that you can force the second request back to the same server. But this prevents you from uniform distribution of load.

 

You also face problems while using Sessions in a server-farm environment. Sessions are server specific; so if one server has a session, the other servers won't have the same information. So, you will lost the session variable if the request is routed to a different server. One possible solution is to have a central machine that handles session variables, but the drawback involved is the single point of failure. Yet another possibility is to use commercial products like NCache from www.alachisoft.com for overcoming the issues involved in clustered Session Management.

 

In short, the benefits of clustering are many such as increased availability, scalability, better data management as well as fast access to data. But there are also issues involved (some discussed above) while managing data in the cluster.

A:could you recommend a book/website/article/whiteppaer?? anything?! :D
A:
Sure.
Previous: Large application
We are in the process of building a web application that is build from about 3000 pages. All those pages need to share session variables. Is there a way to segment the application so it is not build as one huge application. What is the best way to approch a development of an application in that... more
Next: None