Automated management of content servers based on change in demand

Information

  • Patent Grant
  • 10771541
  • Patent Number
    10,771,541
  • Date Filed
    Monday, May 9, 2016
    9 years ago
  • Date Issued
    Tuesday, September 8, 2020
    5 years ago
Abstract
Methods and apparatus for detecting a change in demand for server resources across a load-bearing system having one or more content servers hosting identical content, the load-bearing system being connected to a network of content servers; and automatically modifying the number of content servers on the load-bearing system in response to the change in demand.
Description
BACKGROUND

This invention relates to automated server replication.


The popularity of the World Wide Web as a communications medium lies in the richness of its information content and ease of use. Information in this medium exists as objects in a widely distributed collection of internetworked servers, each object uniquely addressable by its own Uniform Resource Locator (URL). The proliferation of commercial applications on the World Wide Web brings with it an increasing number of users making ever-increasing numbers of requests for web content. The problems of latency and bandwidth considerations manifest themselves in delay and lost information.


Network architects respond using an array of solutions, one of which is the server farm. This involves the use of multiple web servers with identical content, or the segmentation based upon functionality. For example, two servers for web functions, two for File Transfer Protocol (FTP), two as a database, and so forth. The use of multiple servers solves one problem at the expense of creating another. If there are multiple servers, how does the end user locate a particular web site? Presently, names and Universal Resource Locator (URLs) are resolved into unique single addresses by a Domain Name Service (DNS) residing in a DNS server. DNS servers maintain a list of domain names cross referenced to individual Internet Protocol (IP) addresses. However, if multiple web servers or server farms are used, a modified version of DNS service is used. A common approach to this problem is to modify the DNS system to be aware of a one-to-many mapping, of names-to-IP-addresses. Thus, the DNS will return an IP address that comes from a list of possible IP addresses that correspond to a particular web object. Thus, from one moment to the next, a DNS query will resolve to different FP addresses. In this example, the modified DNS decides which IP address to return based on how busy each of the servers is.


In current network management systems, there are various methods of detecting and monitoring the load across a server or a server farm. One system uses a load capacity detection agent to monitor the load across a server or a server farm. In this system, when the load detection agent detects that a server farm, for example, is experiencing excess load, the agent notifies a system administrator of the system. The system administrator may decide to manually take action to either reduce the load across the server farm, or alternatively, increase the available load capacity by adding a server to the server farm. Generally, the system administrator adds a server by manually identifying an additional available server, and then modifying the entries in the load management system to include the IP address of the recently-added content server.


SUMMARY

In general, in one aspect, the invention provides a method and apparatus, including a computer program apparatus, implementing techniques for detecting a change in demand for server resources across a load-bearing system having one or more content servers hosting identical content, the load-bearing system being connected to a network of content servers; and automatically modifying the number of content servers on the load-bearing system in response to the change in demand.


Each content server on the network may be categorized as active or idle. The hosted content may be assigned a priority level, and a number defining a maximum number of content servers on the load-bearing system. A content server may be added to the load-bearing system if the change in demand is greater than a pre-configured threshold and the number of content servers on the load-bearing system is less than a maximum number assigned to the hosted content. The number of content servers may be modified by selecting an available content server on the network; loading hosted content onto the selected content server; and adding the selected content server to the load-bearing system. All of the content servers on the load-bearing system including the selected content server host identical content. The available content server having the lowest priority level, the highest available load capacity, or the least number of active sessions may be selected.


The hosted content may be assigned a number defining a minimum number of content servers on the load-bearing system. A content server may be removed from the load-bearing system if the change in demand is greater than a pre-configured threshold and the number of content servers on the load-bearing system is greater than a minimum number assigned to the hosted content. The content server having the highest available load capacity or the least number of active sessions may be removed.


Embodiments may have on or more of the following advantages. The invention uses scripting, or other software techniques, to automate the addition or removal of a content server from a load-bearing system. Automating the addition and removal of content servers gives, for example, a web hosting operation a way to manipulate server resources between high-activity servers and low-activity servers without requiring any user intervention. In particular, the invention serves the needs of “seasonal” or “spiky” web applications, such as tax preparation services or Superbowl-related web sites, which experience a tremendous increase in the number of hits at specific times of the year.


The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.





DESCRIPTION OF DRAWINGS


FIGS. 1a-1d are block diagrams illustrating an internetwork topology including an network of content servers and a management server.



FIG. 2 is a flowchart of a process for automatically modifying the number of content servers on a load-bearing system.





Like reference symbols in the various drawings indicate like elements.


DETAILED DESCRIPTION

Referring to FIGS. 1a-1d, an exemplary internetwork 100 includes a network of servers 102 connected to a network of clients 104 through the Internet 106. The network of servers 102 includes a management server 108 and a group of content servers 110.


The content servers 110 are nodes on the network 102 that perform the actual serving of content, for example, Web pages or FTP files. Although only nine content servers 110 are shown in FIGS. 1a through 1d, it will be understood that any number of content servers may be connected to the network 102. Each content server 110 is capable of receiving queries from clients, doing substantially all the processing necessary to formulate responses to the queries, and providing these responses to the clients. Web servers, for example, respond to requests from clients (e.g., through browser software) for access to files and data. Other types of servers allow clients to share access to network devices, such as shared printers or disk storage.


In one exemplary commercial setting, each content server 110 is a managed node on the network 102 maintained by a network operator, such as Genuity Inc. of Woburn, Mass. By the term “managed node”, it is meant that each content server 110 runs a management process that allows another computer to query the managed node for information. For example. Simple Network Management Protocol (SNMP) describes how a computer formats a message to send to the managed node. Software on the managed node, called an SNMP agent (not shown), examines SNMP messages it receives, and responds accordingly. Each SNAP agent maintains a local database of variables that describe the state of the content server 110 and may, optionally, affect its operation. Each SNMP agent's local database includes, but need not be limited to the following: the number of packets and bytes sent and received from the Internet 106, the number of broadcasts, the current output queue size, the current transaction rate, the current processor utilization, and the current disk utilization.


Content servers 110 are the systems which store information that may be accessed using web browser software such as Netscape Communicator® and Microsoft's Internet Explorer®. Content servers transmit their information in response to receiving, a message of a format specified by Hyper Text Transfer Protocol (HTTP). The format of the server's response is also specified by HTTP, and is understood by web browser software.


Network management on the network 102 can be done from management servers, an example of which is shown as management server 108, which are general-purpose computers running management software. The management server 108 interacts with the SNMP agents in the content servers 110 using the SNMP protocol. This protocol allows the management server 108 to query the state of an agent's local variables, and change them if necessary. For example, the management server 108 can issue commands and get responses that allow the management server 108 to monitor the resources available (i.e., available load capacity) cm each content server 110, and express them in a way that enables the content servers 110 to be categorized as active or idle. In one example, the management server 108 only considers the CPU resource, and neglects all others. In other implementations, the management server 108 uses a more complex combination of considerations, with load metrics ranging from the instantaneous CPU utilization and IO queue length, through to a linear combination of CPU, memory and IO queue lengths. The management server 108 can also modify network routing tables, and change the status of network links and devices. The collection of all possible variables available via SNMP is given in a data structure called the Management Information Base (MIB), which is formally defined in the Internet Engineering Task Force (IETF) Request For Comment (RFC) 1213. The IETF is a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and smooth operation of the Internet—it is open to any individual.


The management server 108 also houses several other software components, which include in one implementation, an image manager 116, and a content storage system 118. In the illustrated examples on FIGS. 1a-1d, a single server implements the software components of the management server 108. However, it should be noted that two or more servers connected to the network 102 may implement the software components.


The router 114 uses any one of a number of dynamic routing algorithms (e.g., distance vector routing and link state routing) to decide where to send packets addressed to a particular IP address; for example, how to get to a particular content server which are all distinguished based on their assigned IP address. Dynamic routing algorithms change their routing decisions in response to changes in the topology of the network 102. A set of files is stored in the content storage system 118. Each file contains content data, applications and all the necessary software required to implement a web site presence on the Internet 106. Each file can be loaded onto a content server 110 by the image manager 116. In one implementation, the image manager 116 maintains a table (shown below) that includes, for each file, a priority level, a minimum number and a maximum number of content servers 110 that can be used to implement the web site. The priority level indicates to the management server 108 the relative importance—to the network operator, Genuity Inc., for example—of implementating a particular web site in situations in which several web sites are vying for limited server capacity. In one implementation, a five-point scale is used to designate a priority level: “highest”, “high”, “medium”, “low” and “lowest”. Generally, the higher the priority level assigned to a file, the more server resources (up to the maximum number of content servers 110 identified in the table) are allocated to implement the web site. By default, content servers 110 that are idle are assigned a “lowest” priority level. When a file having a “highest” priority level is loaded onto a content server 110 that is idle, for example, the priority level of the content server 110 changes from “lowest” to “highest”.


Assume, for example, that three files—file “A” file “B”, and file “C”—are stored in the content storage system 118. The second, third and fourth table entries are populated with the following data:















File
Priority Level
Min. Number
Max. Number







A
highest
1
7


B
medium
1
3


C
low
1
3










Initially, each file is loaded and run on one or more content servers 110, indicated in dashed lines in FIG. 1a as load-bearing system A 120, load-bearing system B 122, and load-bearing system C 124. If a load-bearing system, such as load-bearing system A 120, has multiple content servers 110, the load on the system is distributed using one of the following schemes: (1) a load-sharing scheme; (2) a load-balancing scheme; or (3) a load-leveling scheme. Generally, content servers 110 in a load-sharing system that utilizes the load-sharing scheme are viewed in binary. That is, the server is either idle or busy, and load may only be placed on idle servers. Load-balancing schemes attempt to ensure that the load on each content server 110 in the system is within a small degree of the load present on every other content server in the system. Load-leveling schemes can be viewed as the middle ground between the load-sharing and load-balancing schemes. Rather than trying to obtain an even distribution across the system, or utilizing only the content servers 110 that are idle, the load-leveling scheme distributes load in a manner that minimizes congestion.


Referring to FIG. 2, a process 200 residing in the management server 108 periodically checks (202) the available load capacity on each load-bearing system. In one implementation, the process 200 polls each content server 110 in a load-beating system to determine its available load capacity.


If the process 200 detects (204) that the load on the load-bearing system B 122, for example, is greater than a preconfigured threshold level (i.e., there is insufficient aggregate available load capacity), the process then determines (206) whether the number of content servers 110 in the load-bearing system B 122 is less than the maximum number that may be allocated to that system. If so, the process 200 will add a content server 110 to the load-bearing system B 122 if one is available. By use of the term “available”, it is meant that the content server 110 is idle and may be added to a load-bearing system, or alternatively, the content server has a lower priority level and may be removed from a particular load-bearing system and allocated to a different load-bearing system. For example, as shown in FIG. 1b, if the load-bearing system C 124 is implemented by a single content server 124a, the content server 124a is not available for re-allocation to either of the other two load-bearing systems 120 and 122, because the network operator has designated in the table that at least one content server 110 in the network 102 must be allocated to the load-bearing system C 124.


The process 200 first polls all of the content servers 110 on the network 102 to determine (210) if there is an available content server 110 on the network 102. If none of the content servers 110 are available, the process 200 logs and signals the event (208) to the network operator maintaining the network 102. Otherwise, the process 200 selects (212) one of the available content servers for addition to the load-bearing system B 122. If there are multiple available content servers 110, the process 200 will typically select one that is idle for addition to the load-bearing system B 122. However, if all of the available content servers 110 on the network 102 are active, as shown in FIG. 1c, the process 200 makes the selection as follows:


(1) If there is only one available content server 110, the process 200 selects that content server 110.


(2) If there are multiple available content servers 110, the process 200 selects the content server 110 having the lowest priority level.


(3) If there are multiple available content servers 110 having the lowest priority level, the process 200 polls each of those content servers 110 to determine which content server 110 has the highest available load capacity and selects that content server 110. Alternatively, the process 200 polls each of those content servers 110 to determine which content server 110 has the least number of running processes in progress (called “active sessions”) and selects that content server 110.


Once the selection is made, say, for example, the process 200 selects the content server having an IP address of “128.11.234.59” 124b in the load-bearing system C 124, as shown in FIG. 1c, the process 200 can be configured to immediately stop all future client queries directed to the load-bearing system C 124 from being sent to the selected content server 124b for processing. The process 200 can also be configured to wait until all of the active sessions on the selected content server 124b have been terminated before removing that content server 124b from the load-bearing system C 124. Once removed, the process 200 retrieves the file “B” from the content storage system 118 and uses the image manager 116 to load (214) it onto the selected content server 124b. Referring to FIG. 1d, the process 200 then starts the selected content server 124b having the recently-loaded file “B”, and modifies the DNS system to add (216) the content server having an IP address of “128.11.234.59” 124b to the load-bearing system B 122. Thereafter, when to client requests a service by entering in a web browser the URL for the web site implemented by the load-bearing system B 122, the request can be directed to the content server 124b.


Referring to FIG. 1c, if the process 200 detects (218) that the load on the load-hearing system B 122, for example, is less than a preconfigured threshold level, the process 200 then determines (220) whether the number of content servers 110 in the load-bearing system B 122 is more than the minimum number that may be allocated to that system 122. If so, the process 200 may select (222) a content server 110 from the load-bearing system B 122 for removal if the aggregate available load capacity of the load-bearing system B, the historical demand for services implemented by the load-hearing system B, as web as damping considerations, among others, warrants removal of a content server. The process 200 selects a content server for removal much in the same manner described above. That is, the selection may be made by polling each of the content servers 110 in the load-bearing system B 122 to determine which content server 110 has the highest available load capacity and selecting that content server 110. Alternatively, the selection may be made by polling each of those content servers 110 to determine which content server 110 has the least number of active sessions and selecting that content server 110. The process 200 can be configured to wait until all of the active sessions on the selected content server 110 have been terminated before removing (224) that content server 110 from the load-bearing system B 122, and categorizing it as idle.


Other embodiments are within the scope of the following claims.

Claims
  • 1. A method comprising: using a computer to detect a change in demand for server resources across a first load-bearing system having content servers hosting content;in response to the change in demand, determining, from the content servers hosting the content, two or more content servers having a lowest priority level from a set of priority levels;in response to determining that two or more content servers have the lowest priority level, determining, from the two or more content servers, a first content server having a least number of active sessions and selecting, from the two or more content servers, the first content server;stopping client requests from being directed to the first content server based on determining the first content server having the least number of active sessions;based on determining the first content server having the least number of active sessions, determining to wait until existing active sessions have been terminated on the first content server before removing the first content server from the first load-bearing system;storing an entry in a table, wherein the entry is associated with the hosted content, and wherein the entry indicates a priority level, a minimum threshold of content servers, and a maximum threshold of content servers;removing the first content server from the first load-bearing system, in response to a total number of content servers on the first load-bearing system being greater than the minimum threshold of content servers associated with the hosted content;adding the removed first content server to a second load-bearing system having one or more other content servers hosting separate content, in response to a number of the one or more other content servers on the second load-bearing system being less than the maximum threshold of content servers associated with the separate hosted content, the second load-bearing system connected to the first load-bearing system via a network connection;causing the separate hosted content to be stored on the removed first content server;causing client requests for the separate hosted content to be directed to at least the removed first content server on the second load-bearing system;receiving a first content file on a second content server, wherein the second content server is at an idle state, wherein the idle state corresponds to a lowest priority level, and wherein the first content file is at a highest priority level; andsetting a priority of the second content sever to the highest priority level based on the first content file.
  • 2. The method as recited in claim 1, wherein the removed content server hosts content of a lower priority level than a priority level of content hosted by other content servers on the second load-bearing system.
  • 3. The method as recited in claim 1, wherein the set of priority levels includes highest, high, medium, low, and lowest.
  • 4. The method as recited in claim 1, further comprising loading a copy of the first content file onto a third content server of the one or more other content servers by an image manager in communication with the second load-bearing system.
  • 5. The method as recited in claim 1, wherein causing client requests for the separate hosted content to be directed to the removed first content server or second content server on the second load-bearing system further comprises modifying a routing system to add an address of the first content server or an address of the second content server to the second load-bearing system.
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of and claims the benefit of priority to U.S. patent application Ser. No. 12/048,669, titled “AUTOMATED MANAGEMENT OF CONTENT SERVERS BASED ON CHANGE IN DEMAND,” filed Mar. 14, 2008, which is incorporated by reference herein for all purposes. Application Ser. No. 12/048,669 is a continuation of and claims the benefit of priority to U.S. patent application Ser. No. 09/969,437, titled “AUTOMATED SERVER REPLICATION,” filed Oct. 2, 2001, which is incorporated by reference herein for all purposes.

US Referenced Citations (352)
Number Name Date Kind
4495570 Kitajima et al. Jan 1985 A
4591983 Bennett et al. May 1986 A
4594704 Ollivier Jun 1986 A
4726017 Krum et al. Feb 1988 A
4803641 Hardy et al. Feb 1989 A
4839798 Eguchi et al. Jun 1989 A
4847784 Clancey Jul 1989 A
4920432 Eggers et al. Apr 1990 A
4922417 Churm et al. May 1990 A
4943932 Lark et al. Jul 1990 A
4949187 Cohen Aug 1990 A
4949248 Caro Aug 1990 A
5029232 Nall Jul 1991 A
5070191 Yamada et al. Dec 1991 A
5130792 Tindell et al. Jul 1992 A
5132992 Yurt et al. Jul 1992 A
5136716 Harvey et al. Aug 1992 A
5172413 Bradley et al. Dec 1992 A
5191573 Hair Mar 1993 A
5253275 Yurt et al. Oct 1993 A
5253341 Rozmanith et al. Oct 1993 A
5287499 Nemes Feb 1994 A
5287537 Newmark et al. Feb 1994 A
5291554 Morales Mar 1994 A
5341477 Pitkin et al. Aug 1994 A
5371532 Gelman et al. Dec 1994 A
5410343 Coddington et al. Apr 1995 A
5414455 Hooper et al. May 1995 A
5442389 Blahut et al. Aug 1995 A
5442390 Hooper et al. Aug 1995 A
5442749 Northcutt et al. Aug 1995 A
5471622 Eadline Nov 1995 A
5475615 Lin Dec 1995 A
5508732 Bottomley et al. Apr 1996 A
5515511 Nguyen et al. May 1996 A
5519435 Anderson May 1996 A
5528281 Grady et al. Jun 1996 A
5539621 Kikinis Jul 1996 A
5542087 Neimat et al. Jul 1996 A
5544313 Shachnai et al. Aug 1996 A
5544327 Dan et al. Aug 1996 A
5550577 Verbiest et al. Aug 1996 A
5550863 Yurt et al. Aug 1996 A
5550982 Long et al. Aug 1996 A
5557317 Nishio et al. Sep 1996 A
5572643 Judson Nov 1996 A
5590288 Castor et al. Dec 1996 A
5592611 Midgely et al. Jan 1997 A
5594910 Filepp et al. Jan 1997 A
5603026 Demers et al. Feb 1997 A
5619648 Canale et al. Apr 1997 A
5623656 Lyons Apr 1997 A
5625781 Cline et al. Apr 1997 A
5627829 Gleeson et al. May 1997 A
5630067 Kindell et al. May 1997 A
5633999 Clowes et al. May 1997 A
5634006 Baugher et al. May 1997 A
5638443 Stefik et al. Jun 1997 A
5644714 Kikinis Jul 1997 A
5646676 Dewkett et al. Jul 1997 A
5649186 Ferguson Jul 1997 A
5659729 Nielsen Aug 1997 A
5666362 Chen et al. Sep 1997 A
5671279 Elgamal Sep 1997 A
5675734 Hair Oct 1997 A
5682512 Tetrick Oct 1997 A
5699513 Feigen et al. Dec 1997 A
5712979 Graber et al. Jan 1998 A
5715453 Stewart Feb 1998 A
5721914 DeVries Feb 1998 A
5734831 Sanders Mar 1998 A
5740423 Logan et al. Apr 1998 A
5742762 Scholl et al. Apr 1998 A
5751961 Smyk May 1998 A
5751967 Raab et al. May 1998 A
5761507 Govett Jun 1998 A
5761663 Lagarde et al. Jun 1998 A
5764906 Edelstein et al. Jun 1998 A
5774660 Brendel et al. Jun 1998 A
5774668 Choquier et al. Jun 1998 A
5777989 McGarvey Jul 1998 A
5784058 LaStrange et al. Jul 1998 A
5796952 Davis et al. Aug 1998 A
5799141 Galipeau et al. Aug 1998 A
5802106 Packer Sep 1998 A
5802291 Balick et al. Sep 1998 A
5812769 Graber et al. Sep 1998 A
5815664 Asano Sep 1998 A
5828847 Gehr et al. Oct 1998 A
5832506 Kuzma Nov 1998 A
5832514 Norin et al. Nov 1998 A
5835718 Blewett Nov 1998 A
5845303 Templeman Dec 1998 A
5856974 Gervais et al. Jan 1999 A
5862339 Bonnaure et al. Jan 1999 A
5867706 Martin et al. Feb 1999 A
5867799 Lang et al. Feb 1999 A
5870546 Kirsch Feb 1999 A
5870559 Leshem et al. Feb 1999 A
5878212 Civanlar et al. Mar 1999 A
5884038 Kapoor Mar 1999 A
5890171 Blumer et al. Mar 1999 A
5893116 Simmonds et al. Apr 1999 A
5894554 Lowery et al. Apr 1999 A
5896533 Ramos et al. Apr 1999 A
5903723 Beck et al. May 1999 A
5907704 Gudmundson et al. May 1999 A
5913028 Wang et al. Jun 1999 A
5913033 Grout Jun 1999 A
5915095 Miskowiec Jun 1999 A
5918010 Appleman et al. Jun 1999 A
5919247 Van Hoff et al. Jul 1999 A
5920701 Miller et al. Jul 1999 A
5933832 Suzuoka et al. Aug 1999 A
5935207 Logue et al. Aug 1999 A
5945989 Freishtat et al. Aug 1999 A
5956489 San Andres et al. Sep 1999 A
5956716 Kenner et al. Sep 1999 A
5958008 Pogrebisky et al. Sep 1999 A
5961596 Takubo et al. Oct 1999 A
5966440 Hair Oct 1999 A
5968121 Logan et al. Oct 1999 A
5978791 Farber et al. Nov 1999 A
5983214 Lang et al. Nov 1999 A
5983227 Nazem et al. Nov 1999 A
5987606 Cirasole et al. Nov 1999 A
5991809 Kriegsman et al. Nov 1999 A
6002720 Yurt et al. Dec 1999 A
6003030 Kenner et al. Dec 1999 A
6006264 Colby et al. Dec 1999 A
6012090 Chung et al. Jan 2000 A
6014686 Elnozahy et al. Jan 2000 A
6014698 Griffiths Jan 2000 A
6018516 Packer Jan 2000 A
6026440 Shrader et al. Feb 2000 A
6029175 Chow et al. Feb 2000 A
6029176 Cannon Feb 2000 A
6035332 Ingrassia et al. Mar 2000 A
6038216 Packer Mar 2000 A
6038310 Hollywood et al. Mar 2000 A
6038610 Belfiore et al. Mar 2000 A
6041324 Earl et al. Mar 2000 A
6044405 Driscoll et al. Mar 2000 A
6046980 Packer Apr 2000 A
6049831 Gardell et al. Apr 2000 A
6052718 Gifford Apr 2000 A
6052730 Felciano et al. Apr 2000 A
6065051 Steele et al. May 2000 A
6065062 Periasamy et al. May 2000 A
6070191 Narendran et al. May 2000 A
6081829 Sidana Jun 2000 A
6092112 Fukushige Jul 2000 A
6092204 Baker et al. Jul 2000 A
6105028 Sullivan et al. Aug 2000 A
6108673 Brandt et al. Aug 2000 A
6108703 Leighton et al. Aug 2000 A
6112231 DeSimone et al. Aug 2000 A
6112239 Kenner et al. Aug 2000 A
6112240 Pogue et al. Aug 2000 A
6115357 Packer et al. Sep 2000 A
6115752 Chauhan Sep 2000 A
6119143 Dias et al. Sep 2000 A
6125388 Reisman Sep 2000 A
6128601 Van Horne et al. Oct 2000 A
6128660 Grimm et al. Oct 2000 A
6130890 Leinwand et al. Oct 2000 A
6134583 Herriot Oct 2000 A
6144375 Jain et al. Nov 2000 A
6144702 Yurt et al. Nov 2000 A
6144996 Starnes et al. Nov 2000 A
6151624 Teare et al. Nov 2000 A
6154738 Call Nov 2000 A
6154744 Kenner et al. Nov 2000 A
6154753 McFarland Nov 2000 A
6154777 Ebrahim Nov 2000 A
6163779 Mantha et al. Dec 2000 A
6167427 Rabinovich et al. Dec 2000 A
6173311 Hassett et al. Jan 2001 B1
6173322 Hu Jan 2001 B1
6175869 Ahuja et al. Jan 2001 B1
6178160 Bolton et al. Jan 2001 B1
6181867 Kenner et al. Jan 2001 B1
6185598 Farber et al. Feb 2001 B1
6185619 Joffe et al. Feb 2001 B1
6189030 Kirsch et al. Feb 2001 B1
6205120 Packer et al. Mar 2001 B1
6226642 Beranek et al. May 2001 B1
6230196 Guenthner et al. May 2001 B1
6243760 Armbruster et al. Jun 2001 B1
6249810 Kiraly Jun 2001 B1
6256675 Rabinovich Jul 2001 B1
6266699 Sevcik Jul 2001 B1
6269394 Kenner et al. Jul 2001 B1
6275470 Ricciulli Aug 2001 B1
6282569 Wallis et al. Aug 2001 B1
6282574 Voit Aug 2001 B1
6286045 Griffith et al. Sep 2001 B1
6298041 Packer Oct 2001 B1
6311214 Rhoads Oct 2001 B1
6314465 Paul et al. Nov 2001 B1
6314565 Kenner et al. Nov 2001 B1
6332195 Green et al. Dec 2001 B1
6338044 Cook et al. Jan 2002 B1
6347085 Kelly et al. Feb 2002 B2
6360256 Lim Mar 2002 B1
6370571 Medin Apr 2002 B1
6370580 Kriegsman Apr 2002 B2
6374299 Ford et al. Apr 2002 B1
6405252 Gupta et al. Jun 2002 B1
6405257 Gersht et al. Jun 2002 B1
6412000 Riddle et al. Jun 2002 B1
6412002 Denman et al. Jun 2002 B1
6415280 Farber et al. Jul 2002 B1
6421726 Kenner et al. Jul 2002 B1
6430618 Karger et al. Aug 2002 B1
6442549 Schneider Aug 2002 B1
6456630 Packer et al. Sep 2002 B1
6460085 Toporek et al. Oct 2002 B1
6473405 Ricciulli Oct 2002 B2
6480893 Kriegsman Nov 2002 B2
6484143 Swildens et al. Nov 2002 B1
6484204 Rabinovich Nov 2002 B1
6490580 Dey et al. Dec 2002 B1
6490611 Shen Dec 2002 B1
6493707 Dey et al. Dec 2002 B1
6496856 Kenner et al. Dec 2002 B1
6502125 Kenner et al. Dec 2002 B1
6502215 Raad et al. Dec 2002 B2
6505248 Casper et al. Jan 2003 B1
6529477 Toporek et al. Mar 2003 B1
6553413 Leighton et al. Apr 2003 B1
6553420 Karger et al. Apr 2003 B1
6557054 Reisman Apr 2003 B2
6564251 Katariya et al. May 2003 B2
6574612 Baratti et al. Jun 2003 B1
6577595 Counterman Jun 2003 B1
6581090 Lindbo et al. Jun 2003 B1
6584083 Toporek et al. Jun 2003 B1
6591299 Riddle et al. Jul 2003 B2
6601084 Bhaskaran et al. Jul 2003 B1
6611862 Reisman Aug 2003 B2
6625643 Colby et al. Sep 2003 B1
6636499 Dowling Oct 2003 B1
6654344 Toporek et al. Nov 2003 B1
6654807 Farber et al. Nov 2003 B2
6658464 Reisman Dec 2003 B2
6665706 Kenner et al. Dec 2003 B2
6665726 Leighton et al. Dec 2003 B1
6691148 Zinky et al. Feb 2004 B1
6694358 Swildens et al. Feb 2004 B1
6699418 Okada et al. Mar 2004 B2
6708137 Carley Mar 2004 B2
6718328 Norris Apr 2004 B1
6741563 Packer May 2004 B2
6751673 Shaw Jun 2004 B2
6754699 Swildens et al. Jun 2004 B2
6754706 Swildens et al. Jun 2004 B1
6763388 Tsimelzon Jul 2004 B1
6778502 Ricciulli Aug 2004 B2
6795858 Jain et al. Sep 2004 B1
6799221 Kenner et al. Sep 2004 B1
6801576 Haldeman et al. Oct 2004 B1
6834306 Tsimelzon Dec 2004 B1
6842604 Cook et al. Jan 2005 B1
6859926 Brenner et al. Feb 2005 B1
6870851 Leinwand et al. Mar 2005 B1
6874032 Gersht et al. Mar 2005 B2
6901604 Kiraly May 2005 B1
6915329 Kriegsman Jul 2005 B2
6928442 Farber et al. Aug 2005 B2
6934255 Toporek et al. Aug 2005 B1
6950623 Brown et al. Sep 2005 B2
6963980 Mattsson Nov 2005 B1
6963981 Bailey et al. Nov 2005 B1
6965890 Dey et al. Nov 2005 B1
6970432 Hankins et al. Nov 2005 B1
6973485 Ebata et al. Dec 2005 B2
6973490 Robertson et al. Dec 2005 B1
6981050 Tobias et al. Dec 2005 B1
6981180 Bailey et al. Dec 2005 B1
6996616 Leighton et al. Feb 2006 B1
7003572 Lownsbrough et al. Feb 2006 B1
7007089 Freedman Feb 2006 B2
7010578 Lewin et al. Mar 2006 B1
7012900 Riddle Mar 2006 B1
7039633 Dey et al. May 2006 B1
7047300 Oehrke et al. May 2006 B1
7054935 Farber et al. May 2006 B2
7058706 Iyer et al. Jun 2006 B1
7069177 Carley Jun 2006 B2
7096266 Lewin et al. Aug 2006 B2
7103645 Leighton et al. Sep 2006 B2
7181523 Sim Feb 2007 B2
7257817 Cabrera et al. Aug 2007 B2
7373644 Aborn May 2008 B2
9338227 Aborn May 2016 B2
20010029525 Lahr Oct 2001 A1
20010042139 Jeffords et al. Nov 2001 A1
20010056500 Farber et al. Dec 2001 A1
20020018449 Ricciulli Feb 2002 A1
20020023164 Lahr Feb 2002 A1
20020023165 Lahr Feb 2002 A1
20020026560 Jordan et al. Feb 2002 A1
20020032777 Kawata et al. Mar 2002 A1
20020040404 Lahr Apr 2002 A1
20020042817 Lahr Apr 2002 A1
20020046273 Lahr et al. Apr 2002 A1
20020046405 Lahr Apr 2002 A1
20020049857 Farber et al. Apr 2002 A1
20020059592 Kiraly May 2002 A1
20020066038 Mattsson et al. May 2002 A1
20020073199 Levine et al. Jun 2002 A1
20020078263 Darling et al. Jun 2002 A1
20020082999 Lee et al. Jun 2002 A1
20020083124 Knox et al. Jun 2002 A1
20020099850 Farber et al. Jul 2002 A1
20020124080 Leighton et al. Sep 2002 A1
20020129134 Leighton et al. Sep 2002 A1
20020131645 Hamilton Sep 2002 A1
20020143798 Lisiecki et al. Oct 2002 A1
20020143888 Lisiecki et al. Oct 2002 A1
20020147774 Lisiecki et al. Oct 2002 A1
20020163882 Bornstein et al. Nov 2002 A1
20020166117 Abrams et al. Nov 2002 A1
20020194350 Lu et al. Dec 2002 A1
20020199016 Freedman Dec 2002 A1
20030009444 Eidler et al. Jan 2003 A1
20030018966 Cook et al. Jan 2003 A1
20030028623 Hennessey et al. Feb 2003 A1
20030028626 Hennessey et al. Feb 2003 A1
20030028777 Hennessey et al. Feb 2003 A1
20030041238 French et al. Feb 2003 A1
20030055972 Fuller et al. Mar 2003 A1
20030061263 Riddle et al. Mar 2003 A1
20030061280 Bulson et al. Mar 2003 A1
20030065761 Cereja et al. Apr 2003 A1
20030078888 Lee et al. Apr 2003 A1
20030078889 Lee et al. Apr 2003 A1
20030105604 Ash et al. Jun 2003 A1
20030154279 Aziz Aug 2003 A1
20030191822 Leighton et al. Oct 2003 A1
20040022194 Ricciulli Feb 2004 A1
20040139097 Farber et al. Jul 2004 A1
20040177148 Tsimelzon, Jr. Sep 2004 A1
20050033858 Swildens et al. Feb 2005 A1
20050038851 Kriegsman Feb 2005 A1
20050100027 Leinwand et al. May 2005 A1
20050114296 Farber et al. May 2005 A1
20050262104 Robertson et al. Nov 2005 A1
20060080267 Nelken Apr 2006 A1
20060153293 Hsu et al. Jul 2006 A1
20140201373 Smith Jul 2014 A1
Foreign Referenced Citations (22)
Number Date Country
2202572 Oct 1998 CA
0800143 Oct 1997 EP
0801487 Oct 1997 EP
0817444 Jan 1998 EP
0824236 Feb 1998 EP
0865180 Sep 1998 EP
2281793 Mar 1995 GB
07066829 Mar 1995 JP
10027148 Jan 1998 JP
10093552 Apr 1998 JP
10126445 May 1998 JP
10171727 Jun 1998 JP
01053793 Feb 2001 JP
WO-1996042041 Dec 1996 WO
WO-1997011429 Mar 1997 WO
WO-1997029423 Aug 1997 WO
WO-1998004985 Feb 1998 WO
WO-1998006033 Feb 1998 WO
WO-1999040514 Aug 1998 WO
WO-1999009726 Feb 1999 WO
WO-1999029083 Jun 1999 WO
WO-2000052594 Sep 2000 WO
Non-Patent Literature Citations (72)
Entry
“Cisco Distributed Director”, http://wyvw.Gj‘517’90.cQmj˜vafQLQuQltc[751/distdir/dd_wp.htm 1997 , 16 pages.
“Content Management TechnologyIIndustry News”, Content Technologies Trends and Advice, Gilbane Report News for Jun. 1999 Jun. 1999 , 21 pages.
“Exporting Web Server Final Report”, http://www.cs.technion.ac.il/Labs/Lccn/projects/spring97/project4/final_report.html (downloaded Jul. 7, 2007). Spring 1997.
“IBM Technical Disclosure Bulletin; Local Area Network Server Replacement Procedure”, vol. 38, No. 1 (Jan. 1995) , 235-236.
“Overview of the Cisco DistributedDirector 2500 Series” downloaded Apr. 2007: http://www.cisco.com/univercd/cc/td/doc/productliaabu/distrdir/dd250_1t. Cisco DistributedDirector 2500 Series Installation and Configuration Guide, Pub Date unknown, pp. xix-xxii; 1-1 to 1-12; 6-1 to 6-18; 7-1 to 7-18; 8-1 to 8-24.
“Overview of the Cisco DistributedDirector 4700-M” downloaded Apr. 2007 from http://www.cisco.com/univercd/cc/td/doc/product/iaabu/distrdir/dd4700m Cisco DistributedDirector 4700-M Installation and Configuration Guide pp. Xix-xxii; 1-1 to 1-14; 7-1 to 7-18, 8-1 to 8-20; pub. Date unknown.
Adler, R. M. , “Distributed Coordination Models for Client/Server Computing”, Computer 28, Apr. 4, 1995 , 14-22.
Andresen, D. et al., “Multiprocessor scheduling with client resources to improve the response time of WWW applications” ACM Press, NY, Proc. 11th Inti Conf. on Supercomputing (Austria, ICS '97) Jul. 1997 , 92-99.
Andresen, et al., “SWEB: Towards a Scalable World Wide Web Server on Multicomputers”, Proc. IPPS Apr. 15, 1996 , 850-856.
Basturk, E. et al., “Using network layer anycast for load distribution in the Internet”, Tech. Rep., IBM TJ. Watson Research Center Jul. 1997 , 21 pgs.
Berners-Lee, et al., “Uniform Resource Locators (URL)” RFC 1738 University of Minnesota Dec. 1994 , 1-25.
Bestavros, et al., “Server-Initiated Document Dissemination for the WWW”, IEEE Data Engineering Bulletin Sep. 1996 , 19(3): 3-11.
Bestavros, A. , “Speculative Data Dissermination and Service to Reduce Server Load Network Traffic and Service Time in Distributed Information Systems”, In Proc. ICDE '96: The 1996 Int'l Conf. on Data Engineering (Mar. 1996) , 4 Pages.
Bhattacharjee, et al., “Application-layer anycasting”, In Proc. IEEE INFOCOM '97, 1997 , 1-9.
Braun, H. et al., “Web traffic characterization: an assessment of the impact of caching documents from NCSA's web server”, Comput. Netw. ISDN Syst. 28, Dec. 1-2, 1995 , 37-51.
Brisco, T. P. , “T. P. RFC 1794: DNS support for load balancing”, Apr. 1995 , 1-7.
Carter, et al., “Dynamic server selection using bandwidth probing in wide-area networks”, Tech. Rep. BU-CS-96-007, Compo Sci. Dept., Boston University Mar. 1996 , 1-20.
Carter, et al., “Server selection using dynamic path characterization in Wide-Area Networks”, IEEE INFOCOM '97 1997 , pp. 1014-1021.
Carter, J. L. et al., “Universal Classes of Hash Functions” Journal of Computer and System Sciences vol. 18, No. 2 Apr. 1979 , 106-112.
Chankhunthod, A. et al., “A Hierarchical Internet Object Cache” Proc. of the 1996 USENIX Technical Conf. Jan. 1996 , 153-163.
Cohen, J. et al., “Cache Array Routing Protocol v1.1”, http://tools.ietf.org/id/draft-vinod-carp-v1-01.txt (Last-Modified: Wed, Oct. 1, 1997) Sep. 29, 1997 , 8 pages.
Colajanni, et al., “Adaptive TTL schemes for load balancing of distributed Web servers”, SIGMETRICS Perform. Eval. Rev. 25,Sep. 2, 1997 , 36-42.
Cormen, T. H. et al., “Introduction to Algorithms. Hash Tables. Bibliography”, The MIT Press , Cambridge, Massachusetts,(1990) 1990 , 219-243, 991-993.
Crovella, et al., “Dynamic server selection in the Internet”, 3rd IEEE Workshop on the Arch. and Implementation of High Performance Computer Sys. '95 Aug. 1995 , pp. 158-162.
Danzig, P. B. et al., “An analysis of wide-area name server traffic: a study of the Internet Domain Name System”, Conf. Proc. Communications Architectures & Protocols; D. Oran, Ed. SIGCOMM '92; ACM Press, New York, NY Aug. 1992 , 281-292.
De Bra, P.M.E. et al., “Information Retrieval in the World Wide Web: Making Client-Based Searching Feasible”, Computer Networks and ISDN System, NL, North Holland Publishing, Amsterdam, vol. 27, No. 2, ISSN: 0169-7552 Nov. 1, 1994 , 183-192.
Deering, S. E. et al., “Multicast routing in datagram internetworks and extended LANs”, ACM Trans.Comput. Syst. 8,May 2, 1990 , 85-110.
Devine, R. , “Design and Implementation of DDH: A Distributed Dynamic Hashing Algorithm”, In Proc. 4th Int'l Conf. on Foundations of Data Organizations and Algorithms Oct. 1993 , 101-114.
Doi, K. , “Super Proxy Script—How to make distributed proxy servers by URL hashing”, Sharp Corp., http://naragw.sharp.co.jp/sps/; download Jul. 7, 2007. dates unknown (1996-2000).
Feeley, M. et al., “Implementing Global Memory Management in a Workstation Cluster”, In Proc. 15th ACM Symp. on Operating Systems Principles Dec. 1995 , 201-212.
Floyd, S. et al., “A Reliable Multicast Framework for Light-Weight Sessions and Application Level Framing”, In Proc. of ACM SIGCOMM '95, Aug. 1995 , 342-356.
Fox, A. et al., “A Framework for Separating Server Scalability and Availability from Internet Application Functionality”, PhD thesis, University of California, Berkeley, 1998 , 163 pgs.
Fox, A. et al., “Cluster-based scalable network services”, Proc. 16th ACM Symp. on Operating Systems Principles (Saint Malo, France, Oct. 5-8, 1997), W. M. Waite, Ed. SOSP '97. ACM Press, New York, NY , 78-91.
Fredman, M. et al., “Storing a Sparse Table with 0(1) Worst Case Access Time”, J. ACM, vol. 31, No. 3 (Jul. 1984) , 538-544.
Goldszmidt, M. et al., “Load Distribution for Scalable Web Servers: Summer Olympics 1996—A Case Study”, In Proc. 8th IFIPIIEEE Int'l Workshop on Distributed Systems: Operations and Management , Sydney, Australia. Oct. 1997 , 10 pgs.
Grigni, M. et al., “Tight Bounds on Minimum Broadcasts Networks”, SIAM J. Disc. Math. 4 (May 1991) , 207-222.
Gulbrandsen, A. et al., “A DNS RR for specifying the location of services”, (DNS SRV), Network Working Group, RFC 2052, Oct. 1996 , 1-10.
Guyton, et al., “Locating nearby copies of replicated Internet servers”, Proc. ACM SIGCOMM '95; pp. 288-298 Oct. 1995.
Gwertzman, J. et al., “The Case for Geographical Push-Caching”, Proc. Workshop on Hot OS '95 (May 4, 1995) , 51-55.
Gwertzman, J. et al., “World-Wide Web Cache Consistency”, Proc. 1996 USENIX Tech. Conf., pp. 141-151, San Diego, CA Jan. 1996.
Jeffrey, et al., “Proxy-Sharing Proxy Servers”, IEEE pp. 116-119 1996 , 1-4.
Karger, D. et al., “Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web”, In Proc. 29th Annual ACM Symp. on Theory of Computing May 1997 , 654-663.
Kwan, et al., “NCSA's World Wide Web Server: Design and Performance”, IEEE Nov. 1995 , pp. 68-74.
Litwin, W. et al., “LH*—A Scalable, Distributed Data Structure” ACM Trans. on Database Systems, vol. 21, No. 4, pp. 480-525, Dec. 1996 , 1-43.
Luotonen, et al., “World-Wide Web Proxies”, CERN modified May 24, 1994 Apr. 1994 , 1-8.
Malpani, R. et al., “Making World Wide Web Caching Servers Cooperate”, In Proc. 4th Int'l World Wide Web Conf. (downloaded from http://www.w3.org/ConferencesIWWW4/Papers/59/ on Jul. 7, 2007) Dec. 1995 , 10 pages.
Mockapetris, et al., “Development of the Domain Name System”, Proc. SIGCOMM '88 Computer Communications Review, vol. 18, No. 4, Aug. 1988 , 112-122.
Mockapetris, P. , “Domain Names—Concepts and Facilities”, RFC 1034 Nov. 1987 , 1-55.
Mockapetris, P. , “Domain Names—Implementation and Specification”, RFC 1035 Nov. 1987 , 1-55.
Mourad, et al., “Scalable Web Server Architectures”, iscc, 2nd IEEE Symposium on Computers and Communications (ISCC '97) Jul. 1997 , pp. 12-16.
Nisan, N. , “Pseudorandom generators for space-bounded computations”, In Proc. 22nd Annual ACM Symp. on theory of Computing (Baltimore, MD, U.S.) H. Ortiz, Ed. STOC '90. ACM Press, New York, NY, May 13-17, 1990 , 204-212.
Oguchi, et al., “A Study of Caching Proxy Mechanisms Realized on Wide Area Distributed Networks”, High Performance Distributed Computing, 5th Int'l Symposium Aug. 1996 , pp. 443-449.
Palmer, M. et al., “Fido: A Cache that Learns to Fetch”, In Proc. the 17th Int'l Conf. on Very Large Data Bases Sep. 1991 , 255-264.
Panigrahy, R. , “Relieving Hot Spots on the World Wide Web”, Master's thesis, MIT EECS Jun. 1997 , pp. 1-66.
Peleg, D. et al., “The Availability of Quorum Systems”, Information and Computation, 123 ; 210-223 (1995) , 31 pages.
Peterson, E. , “Cisco Takes Global Route” PC Week News, (Feb. 17, 1997) Feb. 17, 1997 , p. 23.
Petri, S. et al., “Load Balancing and Fault Tolerance in Workstation Clusters. Migrating Groups of Communicating Processes”, Operating Systems Review, vol. 29, No. 4 Oct. 1995 , 25-36.
Plaxton, G. C. et al., “Fast Fault-Tolerant Concurrent Access to Shared Objects”, In Proc. 37th IEEE Symp. of Foundations of Computer Science Oct. 1996 , pp. 570-579.
Plaxton, G. C. et al., “Fast Fault-Tolerant Concurrent Access to Shared Objects”, In Proc. 37th IEEE Symp. of Foundations of Computer Science, 570-579 1996 , 10 pages.
Postel, J. , “Domain Name System Structure and Delegation”, RFC 1591 Mar. 1994 , 1-7.
Rabin, M. O. , “Efficient dispersal of information for security, load balancing, and fault tolerance”, J.ACM 36, 2 (Apr. 1989) , pp. 335-348.
Ross, K. W. , “Hash-Routing for Collections of Shared Web Caches” IEEE Network Magazine 11, 7:37-44 Nov.-Dec. 1997 , pp. 1-21.
Schemers, R. et al., “Ibnamed—A load balancing name server written in Perl”, LISA IX; Monterey, CA Sep. 17-22, 1995 , 1-12.
Schuba, C. , “Addressing Weaknesses in the Domain Name System Protocol”, COAST Laboratory, Dept. of Computer Sciences, Purdue University; West Layfayette, in Aug. 1993 , 1-87.
Smith, Neil , “What can Archives offer the World Wide Web?”, Technical Report 11, University of Kent, Computing Laboratory, University of Kent, Canterbury, UK Mar. 1994 , 1-12.
Tarjan, R. E. et al., “Storing a Sparse Table”, Commun.ACM, 22,11, (Nov. 1979) , 606-611.
Thaler, D. G. et al., “Using name-based mappings to increase hit rates”, IEEE/ACM Trans. Netw. 6,Feb. 1, 1998 , 1-14.
Vitter, J. S. et al., “Optimal Prefetching via Data Compression”, Proc. 32nd Annual IEEE Symposium on Foundations of Computer Science Oct. 1991 , 21 pages.
Vixie, P. , “Name Server Operations Guide for BIND”, Internet Software Consortium; La Honda, CA; p. SMM:10-2-SMM:10-30 undated, 1996 , 1-30.
Walsh, Jeff , “GlobalIP/PX Service Should Keep Network Delays Down”, Infoworld (Jan. 20, 1997) , 1-2.
Wessels, Duane , “Intelligent Caching for World-Wide Web Objects”, Masters Thesis, University of Colorado (also presented at INET '95 in Jun. 1995) Jan. 1995 , 1-85.
Yao, A. C. , “Should Tables Be Sorted”, J. ACM 28, 3 (Jul. 1981) , 615-628.
Related Publications (1)
Number Date Country
20160255145 A1 Sep 2016 US
Continuations (2)
Number Date Country
Parent 12048669 Mar 2008 US
Child 15149394 US
Parent 09969437 Oct 2001 US
Child 12048669 US