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 IP 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.
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.
Like reference symbols in the various drawings indicate like elements.
Referring to
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
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 SNMP 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) on 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 chance 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
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:
Initially, each file is loaded and run on one or more content servers 110, indicated in dashed lines in
Referring to
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
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
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
Referring to
Other embodiments are within the scope of the following claims.
The present application is a continuation of U.S. Nonprovisional application Ser. No. 09/969,437, entitled “AUTOMATED SERVER REPLICATION,” filed on 2 Oct. 2001, which is specifically incorporated by reference herein for all that it discloses and teaches.
| 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 | 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 |
| 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 | 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 | Dec 1994 | A |
| 5410343 | Coddington | Apr 1995 | A |
| 5414455 | Hooper | May 1995 | A |
| 5442389 | Blahut | Aug 1995 | A |
| 5442390 | Hooper | Aug 1995 | A |
| 5442749 | Northcutt | Aug 1995 | A |
| 5471622 | Eadline | Nov 1995 | A |
| 5475615 | Lin | Dec 1995 | A |
| 5508732 | Bottomley | Apr 1996 | A |
| 5515511 | Nguyen | May 1996 | A |
| 5519435 | Anderson | May 1996 | A |
| 5528281 | Grady | Jun 1996 | A |
| 5539621 | Kikinis | Jul 1996 | A |
| 5542087 | Neimat et al. | Jul 1996 | A |
| 5544313 | Shachnai | Aug 1996 | A |
| 5544327 | Dan | Aug 1996 | A |
| 5550577 | Verbiest | Aug 1996 | A |
| 5550863 | Yurt | Aug 1996 | A |
| 5550982 | Long | Aug 1996 | A |
| 5557317 | Nishio | Sep 1996 | A |
| 5572643 | Judson | Nov 1996 | A |
| 5590288 | Castor | Dec 1996 | A |
| 5592611 | Midgely | Jan 1997 | A |
| 5594910 | Filepp et al. | Jan 1997 | A |
| 5603026 | Demers et al. | Feb 1997 | A |
| 5619648 | Canale | Apr 1997 | A |
| 5623656 | Lyons | Apr 1997 | A |
| 5625781 | Cline | Apr 1997 | A |
| 5627829 | Gleeson et al. | May 1997 | A |
| 5630067 | Kindell | May 1997 | A |
| 5633999 | Clowes | 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 | 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 | 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 | 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 | 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 | 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 | 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, Jr. 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, III 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 | 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 | Griffiths 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 | Feb 2002 | B2 |
| 6360256 | Lim | Mar 2002 | B1 |
| 6370571 | Medin, Jr. | 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 |
| 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 | Loyall 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 |
| 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 | 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 | 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 |
| 20060143293 | Freedman | Jun 2006 | A1 |
| 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 |
| 07-066829 | Mar 1995 | JP |
| 10-027148 | Jan 1998 | JP |
| 10-093552 | Apr 1998 | JP |
| 10-126445 | May 1998 | JP |
| 10-171727 | Jun 1998 | JP |
| 2001-053793 | Feb 2001 | JP |
| WO 96 42041 | Dec 1996 | WO |
| WO 97 11429 | Mar 1997 | WO |
| WO 97 29423 | Aug 1997 | WO |
| WO 98 04985 | Feb 1998 | WO |
| WO 98 06033 | Feb 1998 | WO |
| WO 99 09726 | Feb 1999 | WO |
| WO 99 29083 | Jun 1999 | WO |
| WO 99 40514 | Aug 1999 | WO |
| WO 00 52594 | Sep 2000 | WO |
| Entry |
|---|
| Adler, R. M., “Distributed Coordination Models for Client/Server Computing,” Computer 28, 4 (Apr. 1995), 14-22. |
| Andresen et al., “SWEB: Towards a Scalable World Wide Web Server on Multicomputers”, Proc. IPPS, (Apr. 15, 1996), 850-856. |
| Andresen, D., et al., Multiprocessor scheduling with client resources to improve the response time of WWW applications, Proc. 11th Intl Conf. on Supercomputing (Austria, Jul. 1997). ICS '97. ACM Press, NY, NY, 92-99. |
| Basturk, E., et al., “Using network layer anycast for load distribution in the Internet”, Tech. Rep., IBM T.J. Watson Research Center, 1997 (21 pgs.). |
| Berners-Lee et al., RFC 1738—“Uniform Resource Locators (URL)”, University of Minnesota, Dec. 1994, 1-25. |
| 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. |
| Bestavros, et al., “Server-initiated Document Dissemination for the WWW,” IEEE Data Engineering Bulletin 19(3):3-11, Sep. 1996, 1-8. |
| 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, 1-2 (Dec. 1995), 37-51. |
| Brisco, 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, Comp. Sci. Dept., Boston University, Mar. 1996, 1-20. |
| Carter et al., Server selection using dynamic path characterization in Wide-Area Networks, IEEE INFOCOM '97, (pp. 1014-1021), 1997, 1-8. |
| Carter, J. Lawrence et al., “Universal Classes of Hash Functions”, Journal of Computer and System Sciences, vol. 18, No. 2, 143-154 (Apr. 1979), 106-112. |
| Chankhunthod, A. et al., “A Hierarchical Internet Object Cache”, Proc. of the 1996 USENIX Technical Conf., Jan. 1996, pp. 153-163. |
| Cisco Systems, Inc., “Cisco Distributed Director” cisco.com/warp/public/751/distdir/dd—wp.htm, 1997, 16 pages. |
| Cohen, J., et al., “Cache Array Routing Protocol v1.1”, Sep. 29, 1997; tools.ietf.org/id/draft-vinod-carp-v1-01.txt (Last-Modified: Wed, Oct. 1, 1997), 8 pages. |
| Colajanni, M. and Yu, P. S. 1997. “Adaptive TTL schemes for load balancing of distributed Web servers. SIGMETRICS” Perform. Eval. Rev. 25, 2 (Sep. 1997), 36-42. |
| “Content Management Technology/Industry News,” Content Technologies Trends and Advice, Gilbane Report, News for Jun. 1999 [21 pages]. |
| Cormen, T. H., et al., “Introduction to Algorithms”, The MIT Press, Cambridge, Massachusetts, (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, pp. 158-162. Aug. 1995. |
| Thaler, D. G. and Ravishankar, C. V. 1998. “Using name-based mappings to increase hit rates”. IEEE/ACM Trans. Netw. 6, 1 (Feb. 1998), 1-14. |
| 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 (Aug. 1992). D. Oran, Ed. SIGCOMM '92. ACM Press, New York, NY, 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 Systems, 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, 2 (May 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, (1993), 101-114. |
| Doi, K. “Super Proxy Script—How to make distributed proxy servers by URL hashing,” Sharp Corp., naragw.sharp.co.jp/sps/, dates unknown (1996-2000), download Jul. 7, 2007. |
| “Exporting Web Server Final Report,” cs.technion.ac.il/Labs/Lccn/projects/spring97/project4/final—report.html, Spring 1997 (downloaded Jul. 7, 2007). |
| Feeley, M., et al., “Implementing Global Memory Management in a Workstation Cluster”, In Proc. 15th ACM Symp. on Operating Systems Principles, (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, 342-356, Aug. 1995. |
| Fox, A., “A Framework for Separating Server Scalability and Availability from Internet Application Functionality”, PhD thesis, University of California, Berkeley, 1998, 163 pages. |
| 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, et al., “Load Distribution for Scalable Web Servers: Summer Olympics 1996—A Case Study,” In Proc. 8th IFIP/IEEE Int'l Workshop on Distributed Systems: Operations and Management, Sydney, Australia, Oct. 1997, 10 pages. |
| Grigni, M., et al., “Tight Bounds on Minimum Broadcasts Networks”, SIAM J. Disc. Math. 4 (1991), 207-222, (1991) 25 pages. |
| Gulbrandsen, A., et al., “A DNS RR for specifying he 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, 1995, 1-18. |
| 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, 11 pages. |
| IBM Technical Disclosure Bulletin,“Local Area Network Server Replacement Procedure”, vol. 38, No. 1, (Jan. 1995), 235-236. |
| 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, pp. 68-74, Nov. 1995, 1-23. |
| Schemers, R., “Ibnamed—A load balancing name server written in Perl,” 1995 LISA IX Sep. 17-22, 1995 Monterey, CA, 1-12. |
| Litwin, W., et al., “LH*—A Scalable, Distributed Data Structure”, ACM Trans. on Database Systems, vol. 21, No. 4, pp. 480-525, 1996, 1-43. |
| Luotonen et al., World-Wide Web Proxies, CERN, Apr. 1994 (modified May 24, 1994), 1-8. |
| Malpani, R., et al., “Making World Wide Web Caching Servers Cooperate”, in Proc. 4th Int'l. World Wide Web Conf. (Dec. 1995), 10 pages (downloaded from w3.org/Conferences/WWW4/Papers/59/ on Jul. 7, 2007), 10 pages. |
| Panigrahy, R., “Relieving Hot Spots on the World Wide Web”, Master's thesis, MIT EECS, Jun. 1997, pp. 1-66. |
| 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., RFC 1034: Domain Names—Concepts and Facilities. Nov. 1987, 1-55. |
| Mockapetris, P., RFC 1035: Domain Names—Implementation and Specification, Nov. 1987, 1-55. |
| Mourad et al., “Scalable Web Server Architectures,” iscc, 2nd IEEE Symposium on Computers and Communications (ISCC '97), 1997, 12-16. |
| Nisan, N. 1990. Pseudorandom generators for space-bounded computations. In Proc. 22nd Annual ACM Symp. on theory of Computing (Baltimore, MD, U.S., May 13-17, 1990). H. Ortiz, Ed. STOC '90. ACM Press, New York, NY, 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, 1996 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. |
| Peleg, D., et al., “The Availability of Quorum Systems”, Information and Computation, 123, 210-223, (1995), 31 pages. |
| Peterson, Eric, “Cisco Takes Global Route”, PC Week News, (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, 570-579, (1996), 10 pages. |
| J. Postel, “Domain Name System Structure and Delegation”, RFC 1591, Mar. 1-7, 1994. |
| Rabin, M. O., 1989, “Efficient dispersal of information for security, load balancing, and fault tolerance”, J. ACM 36, 2 (Apr. 1989), 335-348. |
| Ross, K.W., “Hash-Routing for Collections of Shared Web Caches”, IEEE Network Magazine, 11, 7:37-44, Nov.-Dec. 1997, 1-21. |
| Schuba, Christoph; “Addressing Weaknesses in the Domain Name System Protocol,” COAST Laboratory, Dept. of Computer Sciences, Purdue University; West Layfayette, IN; Aug. 1993, p. 1-87. |
| Neil Smith, “What can Archives offer the World Wide Web?”, Technical Report 11, University of Kent, Computing Laboratory, University of Kent, Canterbury, UK, 1994, 1-12. |
| Tarjan, Robert E., et al., “Storing a Sparse Table”, Commun.ACM, 22, 11, (Nov. 1979), 606-611. |
| 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, Paul; “Name Server Operations Guide for BIND,” Internet Software Consortium; La Honda, CA; p. SMM:10-2-SMM:10-30 (undated, 1996), 1-30. |
| Jeff Walsh, “Global IP/PX Service Should Keep Network Delays Down”, Infoworld, (Jan. 20, 1997), 1-2. |
| Duane Wessels, “Intelligent Caching for World-Wide Web Objects”, Masters Thesis, University of Colorado, 1995, 1-84. |
| Yao, A. C. 1981. “Should Tables Be Sorted?”. J. ACM 28, 3 (Jul. 1981), 615-628. |
| Number | Date | Country | |
|---|---|---|---|
| 20080162700 A1 | Jul 2008 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 09969437 | Oct 2001 | US |
| Child | 12048669 | US |