Scott Weber
CSE 498

Review of "Dynamic Load Balancing on Web-Server Systems"


As particular web sites become popular, the load generated by demand for content can quickly outstrip the abilities of a single server.  In order to be able to effectively respond to all requests, multiple computers are often used in place of a single host.  The simplest way to accomplish this is to provide multiple servers at several different addresses and having the client or user choose one of these to visit from a list of the mirrors.  There are several problems with this method, including that it is not transparent to the user and will probably not lead to even distribution of the load across servers.  There are many other methods for distributing load among a group of servers, most of which are user transparent and provide varying levels of distribution.  This paper summarizes four main categories of load balancing systems: client-based, DNS-based, dispatcher-based and server-based.  A brief comparison of the performance of some of the me! thods concludes the paper.

Client-based load balancing systems rely on the web browser to make a decision about where to send its requests.  It may randomly choose one from a set of known aliases for a given site when requested.  One problem with this approach is that the knowledge must be built into the client ahead of time.  The biggest problem, however, is that the client cannot be controlled by the server.  Since the balancing is completely driven by the client software, a modified client may not participate in load balancing at all, leading to an obvious problem in effectively balancing the incoming load.  The default host will tend to be overloaded in comparison to others.

DNS-based approaches rely on the fact that the common name for a website, such as www.yahoo.com, must be translated to an IP address by a DNS server before it is useful to the client.  Since the owner of a site has control of his own DNS, it can be modified to return different IP addresses to different clients.  This way, requests are spread among the servers because the clients hold different IP addresses for the same common name.  This also provides transparency to the user.  As long as the content on each of the servers is identical, the user does not generally care or even know what the IP address is for a particular site.  A drawback to DNS methods for load balancing is that these common name to IP address mappings are cached throughout the Internet through normal and regular operation of the DNS.  TTL values are assigned to these mappings, describing when the mapping expires.  Through clever manipulation of the TTL value, a DNS server! can help keep the load balanced without undermining the caching efficiencies built into DNS.  Information about server load and client location can be leveraged to determine an appropriate value for the TTL on any given response.

Dispatcher-based systems use a sort of middle-man to dynamically balance the load among several machines.  This middle-man, or dispatcher, is responsible for delivering the packets for a request to an unloaded server.  There are several ways to attack this problem.  In packet rewriting, the destination IP address of an incoming packet is changed to that of an unloaded server.  The responding server then either changes the IP address back to that of the dispatcher and delivers the response directly to the client, or sends the response back to the dispatcher where it is modified before being forwarded to the client.  This second approach is similar to network address translation and can be viewed as an intelligent NAT.  Packet forwarding is similar to packet rewriting, but does not require actually modifying any packets at the IP level.  The initial recipient delivers the packet to a server by choosing a MAC address from those of available se! rvers.

Server-based balancing is done at the actual web server.  Generally a simple DNS-based technique is used to provide an initial distribution of requests.  Then once the requests arrive at a server, the server determines the best server to respond to this particular request.  The contacted server can distribute the request either by sending an HTTP redirect message to the client or by rewriting the packet to be delivered to another host.  HTTP redirection is visible to the client as increased latency, while packet rewriting can place extra load on a host that may have to rewrite a lot of packets.

The paper claims that DNS-based approaches are limited to 32 servers per host name because of a limit on UDP packet size.  Even after following the reference and doing further research, I could not find justification for this statement.  Addition of further description of this limit would make it more believable.

The performance testing done uses two different models: exponential and heavy-tailed.  While the heavy-tailed model is described as more realistic, no justification is given for using either model.  The authors simply state that the models are being used, but do not show that one or both will provide an accurate portrayal of a real situation.

It is interesting that a DNS-based approach with adaptive TTL seems to be one of the best solutions available.  In terms of network structure and programming difficulty, it seems that a DNS-based approach would be the simplest to set up.  Fortunately for system administrators everywhere, the simple approach can also be one of the best performers.

This paper provides a good survey of load balancing techniques for web servers.  I would recommend this paper to others.

REFERENCE
Valeria Cardellini, Michele Colajanni, and Philip S. Yu. "Dynamic load balancing on Web-server systems." IEEE Internet Computing, 3(3):28-39, May/June 1999.