Electrical computers and digital processing systems: multicomput – Computer network managing – Network resource allocating
Reexamination Certificate
1998-04-08
2001-01-16
Maung, Zarni (Department: 2758)
Electrical computers and digital processing systems: multicomput
Computer network managing
Network resource allocating
C709S203000, C709S241000
Reexamination Certificate
active
06175869
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates generally to computer systems for use in processing client requests received over communication networks such as the Internet and more particularly to client-side techniques for processing client requests in a computer system including a pool of replicated servers.
BACKGROUND OF THE INVENTION
Due to the rapid growth of the World Wide Web, many web sites are experiencing overload conditions, which leads to very slow response times for servicing incoming user requests. Increased network congestion amplifies this performance degradation as seen by the clients. In order to accommodate the increasing request load, many web sites have been implemented in the form of a cluster or “pool” of replicated web servers. The network congestion problem is often alleviated by geographically distributing the replicated servers of the server pool.
FIG. 1
shows a distributed server computer system
10
in which a number of clients
12
-i communicate with servers
14
-j over a communication network
16
such as the Internet. The servers
14
-j in the system
10
represent a pool of replicated servers corresponding to a particular web site. In this illustration, the server pool includes five distinct servers
14
-
1
through
14
-
5
arranged as shown. The servers
14
-
1
,
14
-
2
and
14
-
3
form a geographically co-located group
18
, while the servers
14
-
4
and
14
-
5
are geographically distributed relative to each other and the group
18
. This type of distributed server architecture can result in increased service availability in times of high network congestion, and can improve performance by taking advantage of the proximity of clients to particular servers in the pool.
A system with a pool of replicated servers such as that shown in
FIG. 1
generally requires a mechanism for dispatching each incoming client request to an appropriate server in the pool. Many current web server systems implement a server-side dispatching mechanism which requires modification to web server code or the domain name server (DNS) system, or even specialized server-side hardware.
FIG. 2
illustrates a typical server-side solution which may be implemented in the system
10
. Incoming requests from the clients
12
-i are supplied via Internet
16
to a dispatching mechanism
20
that resides at the site of the servers
14
-
1
,
14
-
2
and
14
-
3
in the geographically co-located group
18
. The dispatching mechanism
20
routes the requests to one of the servers in group
18
in accordance with a technique which attempts to provide an optimal distribution of the request load across the servers.
A significant problem with server-side dispatching of the type illustrated in
FIG. 2
is that the dispatching mechanism itself can become a performance bottleneck as the client request load increases. Such a bottleneck cannot be addressed by simply increasing the number of replicated servers in the pool. Another significant problem is that conventional server-side techniques do not provide optimal performance in applications in which the servers are geographically distributed. Unfortunately, conventional client-side techniques have also been unable to provide adequate solutions to these problems. For example, a client-side approach described in C. Yoshikawa et al., “Using Smart Clients to Build Scalable Services,” USENIX 1997 Annual Technical Conference, Jan. 6-10, 1997, Anaheim, Calif., pp. 105-117, uses a modified web browser to perform routing decisions at the client side. The browser downloads an applet which a service provider needs to implement to realize service-specific routing. Although this approach may alleviate the potential bottleneck of a server-side dispatching mechanism in certain applications, it can also create increased network congestion due to applet transmission and potential control messages between the applet and the servers. Another problem with conventional client-side techniques is that such techniques generally cannot achieve load balancing at the server site, i.e., cannot provide an optimal distribution of request load across the servers of a server pool.
SUMMARY OF THE INVENTION
The invention provides improved client-side techniques for processing client requests to a network service hosted by a pool of servers. In an illustrative embodiment of the invention, each client which accesses a web site or other service hosted by a distributed pool of servers has a dispatching mechanism associated therewith. The dispatching mechanism for a given client is implemented by a client agent which intercepts client requests generated by that client and routes them to particular ones of the servers in the pool. The client agent bases its routing decisions on address information regarding the individual servers of the pool, as well as performance data regarding processing of previous client requests directed to the service. The address information, and other site-specific information useful to the routing decision, may be retrieved by the client agent from a response to an initial client request directed to the service. The performance data may include, for example, end-to-end response times for servicing previous client requests directed to the service, and the client agent may route the client request so as to minimize an average end-to-end response time of multiple requests to the service. The client agent may also make use of a probabilistic routing strategy which favors more responsive servers while still ensuring that each of the servers in the pool periodically receives at least one client request. Such a strategy allows accurate performance data to be maintained for all of the servers in the pool.
In accordance with another aspect of the invention, a pricing manager associated with the server pool may be used to establish discount factors or other pricing information for each of the servers in the pool. This pricing information is communicated to the client agents and used in their routing decisions, so as to ensure that otherwise non-cooperating client agents will route their requests in a manner consistent with a target operating point established by the service provider. The discount factor for a given server reflects the relative sensitivity of the client agent to the responsiveness of that server, and the same set of discount factors may be used for each of the client agents that access the service. A given client agent then selects one of the servers for processing a particular client request based on performance data which includes an average response time of each of the servers multiplied by its corresponding discount factor. The discount factors may be adjusted in accordance with an adaptive algorithm which compares actual server load conditions to corresponding target load conditions. The discount factors or other pricing information may also be determined or updated in a distributed manner by the server agents.
The invention can deliver significantly improved performance in processing client requests, while imposing only minimal additional overhead. The invention also provides a number of other advantages over conventional server-side and client-side approaches. For example, an illustrative embodiment of a distributed server system configured in accordance with the invention: (a) supports transparent mapping for popular web sites that have well publicized server names; (b) gracefully scales with an increasing number of clients; (c) allows different clients to use customized routing strategies; (d) enables service providers to effectively control the utilization of individual servers; (e) allows for addition, removal, and migration of servers, and allows these changes to be reflected as quickly as possible; (f) detects non-responsive servers and transparently redirects requests to other replicated servers in the server pool; (g) quickly reincorporates previously non-responsive servers which become available again; (h) takes advantage of differences in network delay between a client and individual servers of a distributed serve
Ahuja Sudhir Raman
Karaul Mehmet
Korilis Ioannis A.
Caldwell Andrew
Lucent Technologies - Inc.
Maung Zarni
Ryan & Mason & Lewis, LLP
LandOfFree
Client-side techniques for web server allocation does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Client-side techniques for web server allocation, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Client-side techniques for web server allocation will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2516173