|
|  Custom CD of patents similar to US5774660 : World-wide-web server with delayed resource-binding for resource-based
load balancing on a distributed resource multi-node network - $19.95 |
| United States Patent | 5774660 |
| Link to this page | http://www.wikipatents.com/5774660.html |
| Inventor(s) | Brendel; Juergen (Redwood City, CA); Kring; Charles J. (Sunnyvale, CA); Liu; Zaide (Santa Clara, CA); Marino; Christopher C. (Mountain View, CA) |
| Abstract | A multi-node server transmits world-wide-web pages to network-based browser
clients. A load balancer receives all requests from clients because they
use a virtual address for the entire site. The load balancer makes a
connection with the client and waits for the URL from the client. The URL
specifies the requested resource. The load balancer waits to perform load
balancing until after the location of the requested resource is known. The
connection and URL request are passed from the load balancer to a second
node having the requested resource. The load balancer re-plays the initial
connection packet sequence to the second node, but modifies the address to
that for the second node. The network software is modified to generate the
physical network address of the second node, but then changes the
destination address back to the virtual address. The second node transmits
the requested resource directly to the client, with the virtual address as
its source. Since all requests are first received by the load balancer
which determines the physical location of the requested resource, nodes
may contain different resources. The entire contents of the web site is
not mirrored onto all nodes. Network bottlenecks are avoided since the
nodes transmit the large files back to the client directly, bypassing the
load balancer. Client browsers can cache the virtual address, even though
different nodes with different physical addresses service requests. |
| |
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5774660 |
|
|
World-wide-web server with delayed resource-binding for resource-based
load balancing on a distributed resource multi-node network |
|
|
|
|
|
| Publication Date |
June 30, 1998 |
|
|
|
|
|
| Filing Date |
August 5, 1996 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5612897 Rege 709/219 Mar,1997 |      Your vote accepted [0 after 0 votes] | | 5603029 Aman 718/105 Feb,1997 |      Your vote accepted [0 after 0 votes] | | 5539883 Allon
Jul,1996 |      Your vote accepted [0 after 0 votes] | | 5495426 Waclawsky 709/226 Feb,1996 |      Your vote accepted [0 after 0 votes] | | 5455948 Poole
Oct,1995 |      Your vote accepted [0 after 0 votes] | | 5455932 Major
Oct,1995 |      Your vote accepted [0 after 0 votes] | | 5452447 Nelson
Sep,1995 |      Your vote accepted [0 after 0 votes] | | 5442771 Filepp 709/219 Aug,1995 |      Your vote accepted [0 after 0 votes] | | 5442749 Northcutt 709/219 Aug,1995 |      Your vote accepted [0 after 0 votes] | | 5426427 Chinnock 709/239 Jun,1995 |      Your vote accepted [0 after 0 votes] | | 5404534 Foss 719/315 Apr,1995 |      Your vote accepted [0 after 0 votes] | | 5400335 Yamada 370/524 Mar,1995 |      Your vote accepted [0 after 0 votes] | | 5355472 Lewis 707/101 Oct,1994 |      Your vote accepted [0 after 0 votes] | | 5343477 Yamada 714/4 Aug,1994 |      Your vote accepted [0 after 0 votes] | | 5341499 Doragh 719/321 Aug,1994 |      Your vote accepted [0 after 0 votes] | | 5307347 Duault 370/439 Apr,1994 |      Your vote accepted [0 after 0 votes] | | 5355453 Row 709/219 Dec,1969 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
|
|
|
|
|
|
Public's "Guesstimation" of Royalty Value
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
We claim:
1. A web site for sending resources to a browser on a client connected to a computer network, the web site comprising:
a network connection point for receiving incoming data packets from the computer network and for transmitting outgoing data packets to the computer network;
local network, coupled to the network connection point, for transferring data packets;
a plurality of network nodes containing web servers with resources, the plurality of network nodes connected to the local network, the plurality of network nodes including means for transmitting the resources as outgoing data packets to the
client, the plurality of network nodes including means for sending the outgoing data packets over the local network to the network connection point;
wherein the plurality of network nodes containing web servers together contain all resources at the web site, but each network node in the plurality of network nodes contains only a portion of all the resources at the web site;
a balancer network node containing a load balancer, receiving the incoming data packets transmitted over the local network from the network connection point, the load balancer for determining an assigned server in the plurality of network nodes
for responding to a request from the client in an incoming data packet, the load balancer including means for transferring a connection to the client to the assigned server;
wherein the balancer network node containing the load balancer is connected to the network connection point by the local network which is also connected to the plurality of network nodes,
wherein network nodes are segregated to contain different resources, and wherein all resources at the web site are not mirrored to all network nodes at the web site,
wherein the load balancer further comprises:
content means for storing an indication of which network nodes in the plurality of network nodes contain each resource;
URL means, receiving incoming data packets from the client containing a request for a resource, for determining a requested resource from the incoming data packets;
compare means, coupled to the content means and coupled to the URL means, for comparing the requested resource to the indication of which network nodes in the plurality of network nodes contain each resource, and for outputting a list of network
nodes containing the requested resource;
balancing means, receiving the list of network nodes containing the requested resource, for choosing as an assigned node one of the network nodes in the list of network nodes,
whereby the incoming data packets are routed to the balancer network node but outgoing data packets bypass the balancer network node and whereby the load balancer chooses an assigned node based on the resources contained by each network node, the
load balancer performing resource-based load balancing.
2. The web site of claim 1 wherein the balancer network node is in the plurality of network nodes containing web servers.
3. The web site of claim 1 wherein the web site is addressable by one network address for all web servers in the plurality of network nodes containing web servers.
4. The web site of claim 1 further comprising:
delay means, in the load balancer, for delaying assignment of the assigned node until an incoming data packet containing the request for the resource is received,
whereby load balancing is delayed.
5. The web site of claim 1 further comprising:
redirect means, in the load balancer, for directing the client to issue a new URL request directly to the assigned node using an address of the assigned node provided by the load balancer to the client;
whereby the client is redirected to the assigned server by the load balancer.
6. A computer-implemented method of servicing requests for resources from a client by nodes containing different resources, the computer-implemented method comprising the steps of:
making a connection and setting up a session between the client and a load balancer at a web site for servicing requests from clients;
waiting for a URL request from the client once the load balancer has made the connection with the client;
receiving the URL request from the client and decoding the URL request to determine a requested resource;
comparing an identifier for the requested resource to identifiers for resources located on a plurality of nodes and determining a first subset of the plurality of nodes which contain the requested resource and a second subset of the plurality of
nodes which do not contain the requested resource;
assigning the URL request to an assigned node in the first subset of the nodes which contain the requested resource, by determining the assigned node to be a server in the first subset of the nodes which is least busy processing requests, wherein
the assigned node is not in the second subset;
transferring the connection and the session setup to the assigned node containing the requested resource by storing packets received from the client when establishing the connection and by transmitting the packets to the assigned node after the
URL request is received;
reading the requested resource on the assigned node and transmitting the requested resource to the client,
whereby the assigned node is selected based on a location of the requested resource determined from the URL request and load balancing is performed among nodes having the requested resource and the connection is transferred from the load balancer
to the assigned node by re-transmitting the packets to the assigned node.
7. The computer-implemented method of claim 6 wherein the packets received from the client are TCP/IP packets having a destination IP address being a virtual IP address of the load balancer, and wherein the step of transmitting the packets to
the assigned node comprises:
changing the virtual IP address of the load balancer in the packets to a real IP address of the assigned node and passing the packets to a modified IP layer;
determining from the real IP address a physical route from the load balancer to the assigned node over a network and generating a physical network address for the assigned node and attaching the physical network address to the packets;
changing the real IP address in the packets back to the virtual IP address before transmission of the packets with the physical network address,
whereby the physical network address is generated from the real IP address of the assigned node, but the packets transmitted to the assigned node contain the virtual IP address of the load balancer.
8. The computer-implemented method of claim 6 wherein the packets received from the client are TCP/IP packets having a destination IP address being a virtual IP address of the load balancer, and wherein the step of transmitting the packets to
the assigned node comprises:
changing the virtual IP address of the load balancer in the packets to a real IP address of the assigned node and passing the packets to a modified IP layer;
determining from the real IP address a physical route from the load balancer to an intermediate router in a path to the assigned node over a network and generating a physical network address of the intermediate router and attaching the physical
network address of the intermediate router to the packets; and
transmitting packets having the real IP address of the assigned node as the destination IP address and the virtual IP address of the load balancer appended to data in the packet;
recovering the virtual IP address of the load balancer from the data in the packet when the packet is received by the assigned node,
whereby the physical network address of the intermediate router is generated from the real IP address of the assigned node, the load balancer and the assigned node being separated by the intermediate router.
9. The computer-implemented method of claim 7 wherein the load balancer is a program in an application layer above a TCP layer which is above the modified IP layer which is above a link layer, wherein the step of receiving the URL request from
the client comprises:
receiving at least one TCP/IP packet from the client and assembling an IP datagram from the at least one TCP/IP packet in the modified IP layer;
changing a protocol for the IP datagram from TCP to an unrecognized protocol;
bypassing the TCP layer and transmitting the IP datagram to the load balancer in the application layer through a raw IP socket,
whereby the TCP layer is bypassed for incoming TCP/IP packets of the URL request.
10. The computer-implemented method of claim 9 wherein the step of transferring the connection and the session setup to the assigned node containing the requested resource further comprises:
passing the packets with the virtual IP address up through a modified IP layer and a standard TCP layer to a standard server application in an application layer on the assigned node, the assigned node being configured to accept packets with
either the real IP address of the assigned node or the virtual IP address of the load balancer,
whereby the assigned node uses the modified IP layer and the standard server application.
11. The computer-implemented method of claim 10 wherein the step of transmitting the requested resource to the client from the assigned node comprises
transmitting the requested resource in TCP/IP outgoing packets which contain the virtual IP address of the load balancer as a source IP address but an IP address for the client as the destination IP address, wherein the TCP/IP outgoing packets
bypass a node with the load balancer,
whereby incoming packets are routed to the load balancer but the outgoing packets bypass the node with the load balancer.
12. The computer-implemented method of claim 11 further comprising the steps of:
creating a session entry for the client in the load balancer when the URL request from the client is received by the load balancer;
updating the session entry for the client to indicate the assigned node when the load balancer assigns the URL request to the assigned node,
whereby the load balancer tracks sessions between clients and assigned nodes.
13. The computer-implemented method of claim 12 further comprising the steps of:
reading a FIN flag in the TCP/IP outgoing packets and determining that the TCP/IP outgoing packet is a FIN packet when the FIN flag is set;
changing the IP address of the client to the virtual IP address of the load balancer as the destination IP address for the FIN packet;
transmitting the FIN packet to the load balancer and closing the session entry for the client in the load balancer in response to the FIN packet;
re-transmitting from the load balancer the FIN packet to the client,
whereby FIN packets are intercepted by the load balancer.
14. A fault-tolerant server farm for serving resources to browser clients remotely located on a network, the resources containing links to other resources not located at the server farm but located on distant computers on the world-wide web,
each link being a universal-resource locator (URL), the URL indicating a host name and a requested resource, the host name indicating a server farm on the network containing the requested resource, the fault-tolerant server farm comprising:
a network connection for transferring packets from the network to a local network;
a plurality of nodes, each node being a computer containing a disk and a connection to the local network;
a plurality of frequently-accessed resources stored on the disk for each node;
a plurality of less-frequently-accessed resources, each of the less-frequently-accessed resources stored on disks for at least two nodes but not stored on the disk for each node;
a primary load balancer, residing on a primary node in the plurality of nodes, for receiving all incoming packets from the network connection, the primary load-balancer assigning URL requests from browser clients to nodes in the plurality of
nodes, wherein the primary load balancer comprises:
storage means for storing at least a portion of connection incoming packets for establishing a connection between a browser client and the server farm;
reply means for generating acknowledgment packets to the browser client in response to the connection incoming packets;
URL decoder means, receiving a URL packet once the connection with the browser client is made, for decoding the URL to determine a requested resource requested by the browser client;
assignment means for selecting an assigned node in the plurality of nodes by not selecting nodes which have disks which do not contain the requested resource;
transfer means for transferring the connection to the assigned node by constructing packets using the storage means which stored at least a portion of connection incoming packets;
pass-through means for transferring incoming packets from the browser client to the assigned node once the connection has been transferred to the assigned node,
a secondary load balancer, residing on a secondary node in the plurality of nodes, for receiving all incoming packets from the network connection when the primary load balancer fails, the secondary load-balancer assigning URL requests from
browser clients to nodes in the plurality of nodes,
whereby each node does not contain all resources at the server farm and the primary and secondary load balancers reside on nodes connected to the local network.
15. The fault-tolerant server farm of claim 14 further comprising:
balancing means, coupled to the primary load balancer and to the secondary load balancer, for assigning connection incoming packets to either the primary load balancer or to the secondary load balancer,
whereby load balancing is distributed between the primary load balancer and the secondary load balancer.
16. The fault-tolerant server farm of claim 15 wherein the network is the Internet, the fault-tolerant server farm further comprising:
a secondary Internet connection for transferring packets from the Internet to a local network,
whereby two Internet connections connect the local network to the Internet. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION--FIELD OF THE INVENTION
This invention relates to network servers, and more particularly to Internet Servers.
BACKGROUND OF THE INVENTION--DESCRIPTION OF THE RELATED ART
Use of the global network known as the Internet has skyrocketed. Advertisers commonly feature their Internet addresses in television, billboard, and magazine ads. Consumers with a remote computer can access the Internet using client software
known as a browser. Explosive growth is occurring in the part of the Internet known as the World-Wide Web, or simply the "web". The web is a collection of millions of files or "web pages" of text, graphics, and other media which are connected by
hyper-links to other web pages. These may physically reside on a computer system anywhere on the Internet--on a computer in the next room or on the other side of the world.
These hyper-links often appear in the browser as a graphical icon or as colored, underlined text. A hyper-link contains a link to another web page. Using a mouse to click on the hyper-link initiates a process which locates and retrieves the
linked web page, regardless of the physical location of that page. Hovering a mouse over a hyper-link or clicking on the link often displays in a corner of the browser a locator for the linked web page. This locator is known as a Universal Resource
Locator, or URL.
Background of URL's, IP Addresses, HTML, HTTP
The URL identifies a domain, a host within that domain, and sometimes a resource or file within a directory structure on the host computer. Domains can be thought of as a group of computers, such as all computers on a company's network. For
example, the domain "ibm.com" identifies a domain for the commercial company IBM, which may include thousands of individual computers. Typically the URL identifies only those computers which are servers on the world-wide web by prefixing the domain with
a host name. Thus the URL "http://www.ibm.com" identifies an individual host computer within the ibm.com domain which operates as a world-wide-web server for IBM. "HTTP" tells the host to use the hyper-text transfer protocol while delivering files over
the Internet. The files delivered can be from resources such as database queries or execution of scripts by the host as well as traditional files.
A web server site may contain thousands of individual web pages. The location of the file or resource containing a desired page is identified by appending a directory-path file name to the host and domain names in the basic URL to form a new
URL. Thus the URL "http://www.ibm.com/dira/dirb/dirc/intro.html" identifies a hyper-text markup-language (HTML) file called "intro.html" which resides on a host named "www" within the ibm.com domain. The file resides in the dira directory and the
dirb/dirc subdirectory. Often this HTML file contains references to other files which are loaded automatically by the client's browser.
While the URL is used to locate a file on a host within a domain, it does not contain a physical address for the host computer. Addresses of computer machines on the Internet are specified using a 32-bit numeric identifier known as the
Internet-Protocol (IP) address. Each computer is typically assigned a different IP address so that no two machines have the same IP address. The IP address is often written as four decimal numbers separated by periods. Each decimal number represents
an 8-bit binary number, from zero to 255 in decimal notation. Thus a computer in IBM's domain might have the IP address 209.180.55.2 while another computer in that domain might have the address 209.180.55.103.
Client Browsers Accessing Web Servers
FIG. 1 is a diagram of a client browser looking up the IP address of a host specified in a URL. Users of a remote computer use client software known as an Internet browser or simply a browser. Popular browsers include Netscape Navigator by
Netscape Communications, Inc. of Mountain View, Calif. and Internet Explorer by Microsoft Corp. of Redmond, Wash., although many other browsers and other types of client software are used.
Browser 10 initiates a communication session with a remote server by the user selecting a URL, perhaps by mouse-clicking on a hyper link to a new web page. Host name 11, "www.round.com", in the URL "http://www.round.com/file.html", is sent to
domain-name-system (DNS) server 14, which is a special Internet server with look-up table 16. DNS server 14 is often a special server at an Internet Service Provider which contains most or all domain names on the entire Internet, or in a local region of
the Internet. One DNS server may have to refer the request to another DNS server for unknown host-names.
DNS server 14 looks through look-up table 16 and finds an entry for the host www.round.com. This entry contains a physical IP address 18 for the web-server host in the domain round.com. This IP address 18 230.101.17.101 is returned to browser
10. Browser 10 then stores this IP address in client cache 20 for future use, a process known as browser caching of the IP address.
Browser 10 then uses cached IP address 18' to initiate a communication session with the remote computer which physically has the desired web page, the www.round.com server having the file.html file. FIG. 2 shows a browser using a cached IP
address to retrieve a file from a remote server in a server farm. Browser 10 reads the cached IP address 18' from client cache 20 and uses cached IP address 18' to initiate a communication session with remote server 22. Once the session with server 22
is established, URL 12 is sent to server 22. Server 22 then accesses disk 24 which includes requested file 26, the file.html web page. A file copy 26' of requested file 26 is sent back to browser 10, which re-constructs the web page from file copy 26'
and displays the web page to the user. Other files such as graphic image files may also be transferred which were not directly requested by the URL, but are referenced by the file.html file.
Server Farms for Large Web Sites Mirror Content
While some smaller web sites can be served from a single computer, larger web sites require multiple computer machines acting as servers. Some web sites receive as many as one million requests or "hits" per hour, requiring many workstation
computers.
FIG. 2 shows server farm 30 which contains server 22 serving browser 10, and servers 22A, 22B, 22C which are servicing other browsers (not shown). Servers 22A, 22B, 22C each contain their own disks 24', each with a copy of all the web pages in
the site, including requested file 26. Server farm 30 is basically a group of replicated servers which can service requests from multiple browsers. Each server has a copy of the entire web site. Any server can service any request since the content is
"mirrored" on all servers.
Each machine typically has its own unique IP address. Since a domain can have many computer machines with many IP addresses, some way to provide to a client one of the many server machines' IP address is needed. One simple approach is known as
rotating DNS or DNS round-robin load-balancing.
DNS server 14 of FIG. 1 contains look-up table 16 which is used to return IP addresses to host-lookup requests from client browsers. Look-up table 16 contains entries for different host names. The entry for a host name specifies the IP
addresses for that host and each entry can contain several IP addresses for that host. The entry for www.round.com host on the domain round.com contains four IP addresses:
230.101.17.100
230.101.17.101
230.101.17.102
230.101.17.103
for the four servers 22A, 22, 22B, 22C of server farm 30 serving the www.round.com web site. When a client requests a DNS look-up, one of these IP addresses is chosen in a round-robin fashion. Each time a different client looks up the host
www.round.com, a different IP address is returned until all the available IP addresses are used. Then the first IP address is returned again. Thus the first browser is sent the IP address for server 22A, the second browser is sent the IP address for
server 22, the third browser sent the IP address for server 22B, and the four browser sent the IP address for server 22C. The fifth browser request to DNS server 14 is sent the first server 22A, and so on in a round-robin fashion.
Each DNS server operates independently of other DNS servers. Thus optimal load balancing is not always achieved.
Other more sophisticated assignment schemes have been used, such as "load-balancing DNS" which sends requests to servers based on a balancing algorithm which attempts to balance the load on each server. With this approach more powerful servers
could be assigned more requests than weaker servers.
IP Addresses of Servers Cached on DNS Server
DNS servers 14 (FIG. 1) often cache the results of domain-name lookups which were passed or forwarded to other DNS servers for completion. The administrator of the www.round.com web site has no way of actively updating the contents of many DNS
caches containing IP addresses of servers in server farm 30. Instead, the administrator must rely on the remote DNS servers periodically flushing their own cached IP addresses and looking up the www.round.com host again. DNS servers may flush their
cached IP addresses every few minutes or not for several weeks. IP addresses can thus remain in a DNS server's cache long after the server with the cached IP address is removed from service. The IP address of the removed server can continue to be
assigned by the DNS server until the cached entry is replaced or flushed.
For the example in FIG. 3, when server 22C crashes, its IP address 230.101.17.103 remains in use in DNS server caches. Users that look-up the www.round.com host name can be assigned the IP address of crashed server 22C. Users sent the IP
address of crashed server 22C are unable to access server farm 30, even though several other servers 22A, 22, 22B at server farm 30 are operational.
DNS Caching Blocks Some Users From Partially-Crashed Web Site
Several hours or even days may be required to flush the IP address of the crashed server 22C from all DNS caches. Thus DNS servers can continue to send the IP address of the crashed server to browsers long after the server has crashed. Browsers
attempting to use this IP address and connect with the crashed server receive no response from the www.round.com web site. These browsers are frozen out of the www.round.com web site.
Since the browser itself caches the IP address from the DNS server until the browser application is closed, browsers can still attempt to access a crashed server after the crash has occurred. FIG. 3 shows a browser using a cached IP address to
access a crashed server which is not responding. Browser 10A had previously cached IP address 18C for server 22C for the www.round.com host. When browser 10A attempts to connect to www.round.com, server 22C is accessed. No response is received from
server 22C since the server is not functioning. To Browser 10A, the web site www.round.com appears to be non-functional, even though to another browser 10, the web site is functional.
Though the user of browser 10A may repeatedly try to connect to the www.round.com web site, each time no response is received until server 22C is fixed. Since DNS server 14 of FIG. 1 may continue to use the IP address of the crashed server 22C,
many users may be locked out from the web site, even though other users can access the site.
When browser 10A also caches IP address 18C, the browser may not be informed that the IP address is no longer valid even after DNS server updates its own cache. These browser caches may persist for several hours, preventing the user from
accessing the web site. Should the server 22C be removed from service permanently, perhaps being re-assigned to another web site, the user is effectively blocked from accessing the web site until the user flushes his IP cache, which may not occur until
the user exits the browser application.
Of course, with a large server farm, the loss of one server blocks out only 1/N of the users, where N is the number of servers in the server farm. Thus for FIG. 3, one-fourth of the current users are blocked out while 3/4ths of the current users
have access to the web site. One-fourth of the new users looking up the host on a DNS server which still uses the old IP address of the crashed server are also blocked from the web site.
Router-Based Web Site
An approach which mitigates some of these problems inserts a multiplexer or router between the browser clients and the server farm. FIG. 4 illustrates a router-based server farm. A single IP address of router 32, 230.101.17.200, is available to
all DNS servers as the single IP address for the web site. Browser 10 caches this IP address as cached IP address 34. Requests from browser 10 are sent to router 32 since cached IP address 34 points to router 32.
Router 32 receives all packets in the transmission from browser 10. Router 32 might be a dedicated personal computer (PC) which uses an algorithm to determine which of servers 36A, 36, 36B, 36C in server farm 38 should service the request from
browser 10. Router 32 may use a fairly complex load-balancing scheme which takes into account requests from other browsers and the capability of each server when some servers are powerful workstations while other servers are older, slower PC's.
All the packets in the session from browser 10 received by router 32 are re-transmitted to server 36, with the destination IP address changed to the IP address for server 36, 230.101.17.101. Server 36 retrieves the requested file 26 from its
local disk 24 and transmits it back to router 32, which then re-transmits the file to browser 10.
When a server crashes, such as crashed server 36C, only those browsers which are currently connected to server 36C experience server failure. Client caching of the router's IP address causes all new sessions to be routed to router 32; only
sessions in progress to crashed server 36C receive no response from the web site. Thus when one of the servers fails, only 1/N of the currently active requests fail, where N is the number of servers. New requests do not fail since router 32 detects
when crashed server 36C is not functioning and no longer directs new requests to the down server.
A commercial embodiment of a router-based web server has been announced by SOS Corp. of New York, N.Y., under the name "HydraWEB", and product literature indicates that a patent is pending. A second commercial embodiment is the Cisco Local
Director, manufactured by Cisco Systems of San Jose, Calif. Each server 36A, 36, 36B, 36C contains a local copy of all content on the web site on disks 24, 24'. Mirroring the full content of the site to all servers is a disadvantage for web sites with
a large amount of content, because of the size and cost of the local disks. Certain web applications such as multimedia and video delivery can require a particularly large amount of disk space. These applications are expensive to implement and thus
minimizing the number of copies at the server farm is desirable.
Another disadvantage with the router web site is that all data transfers go through router 32. Since many web pages contain graphics or even video or sound, the amount of data transferred from the server through the router to the browser is
large. Router 32 must be fast and efficient to handle load balancing and routing of incoming and outgoing packets. As the web site becomes more popular and traffic grows, router 32 can quickly become a bottleneck and limit performance of the web site.
Router 32 is also a single point of failure.
Load-Balancing Granularity Determines Users Affected by Server Failure
For round-robin DNS, the IP address of the web server is a | | |