Why use Clustering?
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?
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.
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.
- Business and Data component question
- ppc API reporting system, what type of patterns, layers, etc.
- Distributed Architecture
- DAL, BAL - static and instance methoiods
- How to save data to database?
- Microsoft Access vs XML
- Create objects from Generic
- Custom Business Objects
- Architecture used in Duwamish
- How to hide results of query based on user rights?
Categories
Architecture(1310)
Custom Controls(1006)
Enterprise Services(506)
GDI+ Graphics(665)
Mobile Development(459)
Report Service(864)
Ajax(1849)
Asp.net Starter(1858)
C#(850)
DataControls(850)
Ado.net(850)
Xml WebService(650)
Deployment(1182)
Security(1250)
Asp.net Upgrade(1198)
Recommend
Links