Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Server Clustering issues

 
Kevin Thompson
Ranch Hand
Posts: 237
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
From my point of view, this is another one of those "opinion" categories. Like how many angels can sit on the edge of a pin.
I have some evidence from this board, that appears to say that the purpose/goal of server clustering is for improved performance. http://www.onjava.com/pub/a/onjava/2001/09/26/load.html
I have some evidence from this board, that appears to say that the purpose/goal of server clustering is for improved availability. http://www.javaworld.com/javaworld/jw-02-2001/jw-0223-extremescale.html
I was curious what other people's opinions were on this issue?
Kevin
 
Gennady Shapiro
Ranch Hand
Posts: 196
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It's both. The performance improves because you split workload between servers in your cluster. The availability improves because fault-tolerance of two boxes is astronomically higher than one. More than that, modern app servers replicate state information of servlets and some beans so in case of one box failure the second one should seamlessly take over so user won't even know what happened.
However , this is more of Part III question. When they ask you how your system improves availability and perrformance you can proudly say - I designed for clusters!!!
 
Chris Mathews
Ranch Hand
Posts: 2712
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Actually Clusters increase scalability but not necessarily performance. In other words adding nodes to your cluster will definitely increase the maximum number of concurrent users but may or may not decrease the average response time per user.
 
Gennady Shapiro
Ranch Hand
Posts: 196
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I stand corrected.
 
Kevin Thompson
Ranch Hand
Posts: 237
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So the answer is neither?
NOT performace
NOT availablility
but YES to scalability?
According to my notes, the words "availability" and "scalability" do not have equivalent meaning.
 
Chris Mathews
Ranch Hand
Posts: 2712
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I never said no to availability. Clustering definitely increases both the availability and reliablity of the Application.
You are reading too much into things. Just because someone writes an article that says "Clustering good, better Availability", doesn't mean that this is the only benefit. It just happens to be the focus of the article.
Don't forget that there are two types of Scalability: Vertical and Horizontal. Clustering is a form of Horizontal Scalability. Most J2EE Application Servers support both.
Regardless, you are getting into too much detail. The exam itself is very high level when it deals with these things. Questions are very straightforward.
 
SJ Adnams
Ranch Hand
Posts: 925
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Performance: the speed that the 'application' serves up pages and performs tasks.
Availabilty: use serial/parallel calculations. 2 independent ISP's increase availabilty, 2 (serial) firewalls (i.e. for a DMZ) decrease availabilty.
Scalability: Vertical - adding RAM, number of hard disks etc. Horizontal - adding JVM's, adding boxes to the cluster, adding webservers.
Clustering increases availability, is an example of horizontal scaling, may increase performance since it will distribute load (since performance is usually a function of load).
Was that the last word? I doubt it...!
Simon
 
Vivek Viswanathan
Ranch Hand
Posts: 350
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I suppose my article was usefull

vivek viswanathan
 
Vivek Viswanathan
Ranch Hand
Posts: 350
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Since the specification states that there are 2 web servers I assume that there exists a Load Balancer, that sits in front of the 2 web servers.
what type of load balancer should be used ?
Software / Hardware
Does the Load Balancer perform addtional jobs like , decrypt the HTTPS requests from the client and send only the HTTP request to each web server ?
Is the session state shared across the 2 web servers ?
If we are using a load balancer, doesnt it become a single point of failure ? Or do we have clustered LoadBalancers ?
In order to maintain the user session the does the Load Balancer read the information in the http request header, Cookies, URL readings and based on the information read, the load balancer sends the request to the appropriate web server ?
Vivek
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic