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
Joined: Sep 25, 2001
Posts: 196
posted
0
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
Joined: Jul 18, 2001
Posts: 2712
posted
0
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
Joined: Sep 25, 2001
Posts: 196
posted
0
I stand corrected.
Kevin Thompson
Ranch Hand
Joined: May 04, 2001
Posts: 237
posted
0
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
Joined: Jul 18, 2001
Posts: 2712
posted
0
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
Joined: Sep 28, 2001
Posts: 925
posted
0
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
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