WO1998026553A1 - Equilibrage de charge et reprise de services de reseau - Google Patents
Equilibrage de charge et reprise de services de reseau Download PDFInfo
- Publication number
- WO1998026553A1 WO1998026553A1 PCT/US1997/022117 US9722117W WO9826553A1 WO 1998026553 A1 WO1998026553 A1 WO 1998026553A1 US 9722117 W US9722117 W US 9722117W WO 9826553 A1 WO9826553 A1 WO 9826553A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- service
- host
- computer
- hosts
- address
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000004044 response Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims 4
- 238000011156 evaluation Methods 0.000 claims 1
- 230000000737 periodic effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 63
- 230000009471 action Effects 0.000 description 19
- 238000012360 testing method Methods 0.000 description 15
- 238000013515 script Methods 0.000 description 13
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000027455 binding Effects 0.000 description 2
- 238000009739 binding Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000036642 wellbeing Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2025—Failover techniques using centralised failover control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1017—Server selection for load balancing based on a round robin mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
Definitions
- This application relates to systems and methods for management of services within a network of computer systems, and particularly relates to load balancing and host failover within such a network.
- Horizontal scaleability adds more computer systems as load increases.
- Each of these computers is typically less powerful than the vertically scaleable solution, but the combined power of multiple such systems frequently exceeds that of the vertical solution for many applications.
- the horizontal solution also permits the user to maximize the cost benefit of prior investments (i.e., prior purchases of still-compatible computer systems).
- Horizontal scaleability can therefore be seen to offer a number of-key advantages over vertical scaleability.
- Reliability is also best served by a horizontally scaleable solution. Reliability is measured by the availability of computer services when needed; since no single computer has ever proved to have 100% up-time, reliability requires more than one computer capable of providing the needed computer services.
- One-to-one failover designates a host system as primary and a backup system as secondary; in the most classic implementation of this approach, the secondary system is idle - that is, it provides no services - until the host fails. When the host becomes unavailable, the secondary system provides the services normally provided by the host.
- Symmetric one-to-one failover is a similar technique, wherein each of the "host” and “backup" systems provide distinct but useful sets of services when both are available, and each is capable of providing the services normally provided by the other.
- each system is both a primary and a secondary, but only the one machine can serve as a backup to the other.
- the second failover scheme known in the prior art is many-to-one failover.
- This approach there are many primary systems but only a single secondary, with each of the primaries providing a distinct set of services.
- the secondary or backup system is capable of performing any of the services provided by any or all of the primaries, but normally sits idle until a primary fails.
- the present invention overcomes virtually all of the limitations of the prior art by providing a system and method by which computing services may be provided by any of a plurality of systems within a group, such that the computing services provided by that group will continue to be available as long as at least one system is available within the group.
- the system and method involves assignment of IP addresses to the hosts and services and management of those IP addresses to achieve the functionality described below. To provide many-to-many failover, a plurality of hosts are organized into a
- Service group wherein each host is capable of providing the service rendered by the service group.
- Each host may also be available to provide other services, and thus may be members of other service groups.
- a service is provided by all of the active members of the service group.
- it is important to maintain communications within the group and to coordinate the cooperation of the various hosts to ensure that the service provided by that group remains available, even if one or more hosts providing the service become unavailable from time to time, such as through failure or load balancing.
- each host periodically sends a "Control message" to all other hosts within the group.
- the control message may also be thought of as an "info message” or, for some purposes, a .heartbeat.
- the control message basically keeps each other host appraised of the status of the sending host as well as data about the perceived status of the other hosts within the group.
- a Leader host is established and assigns to the various hosts responsibility for particular service addresses.
- the leader identifies resources, such as service addresses (which may, for example, be IP addresses) which are not being attended and causes such resources to be acquired by designated hosts.
- the leader also dynamically reassigns resources to hosts which have been newly added or restored to the service group, as well as causing the release of resources handled by failed hosts.
- Load balancing can also be accomplished with the present invention, either through statistical load-balancing by measuring utilization and using round-robin rotation of entries in a Domain Name Service (DNS) zone, or through DNS zone modification.
- DNS Domain Name Service
- Utilization may be determined as a ratio of load (expressed, for example, in instructions per second not idling) divided by current capacity (typically expressed in terms of instructions per second) and for each host is calculated by a service- specific module, since each service supported by a host may have different load and capacity.
- load shedding can be initiated if a hosts utilization exceeds that high water mark by shifting new connections to other less-loaded hosts.
- a hosts utilization drops below a preset minimum utilization (or low water, mark), that host can be added back to the E)NS zone.
- DNS zone modification can be used for load balancing by establishing a configuration parameter that specifies the minimum number of available service addresses that must be present in a DNS zone. By such an approach, highly loaded hosts that exceed the high water mark may continue to be identified as available.
- FIG. 1A shows in block diagram form the operation of a RAIS daemon within a host handling various object types in accordance with the present invention.
- Figure 1 B shows the linking of various service monitors to their associated test objects and load objects.
- Figure 2A shows in block diagram form a network comprising a plurality of service groups.
- Figure 2B shows the data structure of a Control Info Message.
- Figure 2C shows the data structure of the Host Information Entry.
- Figure 2D shows the data structure of the Service Address Database.
- FIG. 3 shows in flow diagram form the "transmit" thread of the service monitor.
- Figure 4A shows in flow diagram form the "receive, thread of the service monitor.
- Figure 4B shows in flow diagram form the "acquire message portion of the receive thread.
- Figure 4C shows in flow diagram form the Receive message portion of the receive thread.
- Figure 4D shows in flow diagram form the "update tables" portion of the receive thread.
- Figure 5A shows in flow diagram form the "scripts" thread of the service monitor.
- Figure 6B shows the data structure of the control service address table.
- Figure 6C shows the data structure of a table showing utilization and weighted utilization.
- the present invention provides a system and method by which a computing service may be provided by any of a plurality of systems within a group, such that the computing service provided by that group will continue to be available as long as at least one system is available within the group.
- the invention is particularly well-suited to operation on a Redundant Array of Independent Servers, or RAIS.
- IP addresses of a plurality of computer systems each of which may be thought of as a service provider for a computing service available from the network.
- Each computer system, or host is assigned a unique IP address in the conventional manner, but the IP addresses are then grouped according to providers of a desired service, such that each member of the group is available to provide that service.
- This collection of hosts may be referred to a "service group, and the members of a service group cooperate to provide a particular service.
- a host may belong to multiple service groups, but for purposes of clarity and simplicity the following discussion will be limited to describing the interaction among hosts in a single service group.
- a "service group” address is established, which is simply an IP address for that group. All members of the service group communicate with each other using the service group address - that is, each member transmits messages to all other group members by addressing the message to the service group address, and each member receives messages from all other service group members by receiving messages destined to the service group address.
- These messages which may be thought of as "control messages,” communicate the well-being of the host providing the message, the status of each service address, actions to be performed by the members of the service group, and any other function suited to the messaging capability.
- a Control address refers to the IP address of a control interface. Each host will preferably have one or more control addresses, and typically must have at least one control interface. The first control address is typically used to identify uniquely the associated host, and may also be referred to as the "host id” or “id_address” hereinafter. Control addresses identify which interface the host should use to transmit and receive group messages.
- a service address is an IP address that hosts in the service group provide service through. Management of such service addresses is a key portion of the present invention.
- each host within a service group periodically sends control (or info) messages to the service group via the service group address.
- info message includes, among other things, a set of the hosts control addresses, its preferred service address and a set of service addresses it is currently serving. These messages enable members of the service group to determine the status of each host in the service group.
- Another function of the control messages is to permit the hosts within a service group to elect one of the hosts to fill the logical role of "leader" of the service group. Because the role of leader is logical, the role may move from one host to another at various times, including when hosts are added or removed. In an exemplary embodiment, the host with the lowest host id is denominated the leader, although other methods are also acceptable.
- the leader of a service group manages service addresses within the group. Among other tasks, the leader tries to establish various conditions at equilibrium, including that all service addresses are being served, that each service address s assigned to only one host, and that each host will serve its preferred service address. The leader also initiates corrective action if the conditions are violated, typically by causing a host either to serve or stop serving a service address; this may be thought of as "acquiring" or "releasing" By such acquiring and releasing Of service addresses, the hosts included within a service group ensure that all addresses are being served. In addition, the present invention includes the ability to modify domain name service bindings by modifying zone files and notifying the DNS server of zone file changes, as described in the concurrently filed U.S.
- a zone is a group of IP addresses with a single common parent, although a zone may not include all of the child addresses or any lower level nodes.
- the leader is also solely responsible for assigning service addresses; thus, while a host added to the system presents with a preferred service address, it does not own that service address until the leader assigns it.
- the leader listens to control messages and quickly releases the preferred service address introduced by the joining host if currently being served by another host by another host in the service group. If the preferred service address is not being served by anyone, the leader simply assigns it to the new host.
- the case where a different hoot has already been assigned the preferred service address of the new host usually arises where a host has previously failed, and is now rejoining the group. In such a situation, the leader will typically request the host currently owning the preferred service address to release it, and will then wait for the release request to complete before assigning the preferred service address to the joining host.
- the leader When a host fails, the leader will detect that the service addresses that were originally served by the failed host are not being actively served, because the control messages will show increasingly long periods since the last time the service addresses were served. The leader then reassigns these unserved addresses to other available hosts within the group.
- the reassignments may be made randomly, or may be made base on a load-balancing scheme, or through any other suitable method.
- the reassignment of service addresses permits failed hosts to be removed from the service group.
- a service address that is not assigned to its preferred host is referred to as an "orphaned" service address.
- Associated with each orphaned service address is a logical countdown timer maintained by the leader. This countdown timer is created and started when the address becomes orphaned; when H expires, the service address is invalidated. When the service address goes invalid, the leader notices that a host is serving an unknown service address and requests that host to release it.
- the countdown timer can be set for very high values, perhaps in the range of years.
- the integrated name service mentioned above refers to the ability of the present invention to modify DNS bindings by modifying zone files and notifying the DNS server of the zone file changes. See the applications described in the Related Applications portion, above; - in particular, see U.S. Pat. ppn. S.N. 08/673,951 , entitled "A Service For a Redundant Array of Internet Servers" of Swee Boon Lim, filed 7/1/96.
- each service group has its own DNS zone. This requirement isolates the DNS changes originating from a service group to a single DNS zone file.
- the DNS zone is set up such that only preferred service addresses of available members are advertised. Since orphaned service addresses cannot be obtained, orphaned service addresses will fade away as described above. Load balancing is another important aspect of the present invention.
- the info message includes two values: one is the current load; the other is current capacity.
- Current capacity is typically expressed in instructions per second; current load is typically expressed in number of instructions per second not idle, measured over a suitable duration.
- capacity could be the maximum bandwidth of the service interfaces, while load may be the average bandwidth consumed during the last measurement interval.
- Hot sparing involves hosts designated as service providers only if another host fails; in essence, such devices are surrogates for failed hosts and their preferred service addresses.
- a hot spare host does not have a preferred service address, but instead sends info messages advising that it is available. This allows the leader to assign service addresses to the hot spare in the event it is needed. In particular, the leader will typically assign orphaned service addresses to hot spares only. Assignment of service addresses may either be random or in accordance with a load-balancing scheme.
- Quiescing is defined as preventing a host in a service group from acquiring service addresses, while at the same time permitting that host to release addresses; in an exemplary embodiment, setting a host as quiesced requires intervention by the system operator.
- quiesced hosts are not included in the service groups DNS zone, and thus their address does not show up in the list of available hosts; unlike failed hosts a quiesced host can continue to serve its current service addresses.
- Failure detection also available to be performed by the present invention, involves monitoring of the "info" or control messages sent by each host.
- the info messages basically serve as a "heartbeat" signal.
- a total host failure is detected if no heartbeat signal occurs within a timeout interval.
- the frequency of transmission of the info message/heartbeat and the timeout interval may be adjusted by the operator to optimize system operation.
- a host may experience service failures, which occur when a host can no longer provide a service due to partial failure. These failures may be transient or persistent, and may involve software or hardware failures such as resource exhaustion or corrupted data, among others.
- hosts with service failures may continue to participate in a service group, although such hosts will voluntarily release their service addresses.
- service monitor SM1 and SM2 and the associated test objects T01-T02 and load objects L01 and L02 are illustrated in the context of the RAIS daemon 20.
- service monitor SM1 is linked to test objects T01 and T02 and load object LOT
- service monitor SM2 is linked to test object T03 and load object L02.
- a service monitor may be linked to any number of test objects, and each test object and load object may be linked to more than one service monitor.
- each provider of a service 30 is identified by a unique IP address.
- each network service 30 may be provided by a plurality of hosts 10 of the type shown in Figures 1A-1 B. This plurality of hosts is configured in what is referred to herein as a service group 100, and multiple service groups 100 may be interconnected within a network 110 to provide all necessary computer services.
- a single host 10 may belong to multiple service groups 100; however, for purposes of clarity, the present description will describe the interaction among hosts in a single service group.
- a new IP address referred to as a service group address 105 is established for each service group, and is typically an IP multicast address and a port number. All hosts 10, or members, within a service group 100 communicate with one another using the service group address 105 that is each member transmits messages to all other group members by addressing the message to the service group address, and each member receives messages from all other service group members by receiving messages destined to the service group address. These messages, which may be thought of as control messages, are typically broadcast on a periodic basis by each host using a protocol such as UDP and communicate a variety of data. The data structure of the control/info message is shown in Figure 2B.
- Typical message contents include: (1) the well-being of the host providing the message; (2) capacity and load; (3) a list of control addresses; (4) the preferred service address; (5) a list of addresses currently being served, including (a) the service address, and (b) the state of that service address, which can be either acquiring, releasing, on-line, or not served; and (6) a list of addresses that should be served including (a) the service address and (b) the last time that address was served by the preferred host.
- the foregoing data about the transmitting host which is included in the control message is typically maintained in a data table referred to as a Host Information Entry, and is transmitted only if authoritatively correct.
- An exemplary Host Information Entry structure is shown in Figure 2C.
- control message further includes whatever information that host has received about the other hosts included in the service group, and when information was last received from that other host (i.e., aging.)
- This data is stored is a database, referred to as the Host Information Database.
- the data structure of Host Information Database is simply a series of Host Information Entries, organized by id_address.
- the Control Message includes a Service Address Database, which is arranged as a set of service addresses and the time since last update for each; See Figure 2D for an exemplary structure. As will be appreciated hereinafter, the time is reset with every new entry; and such resets are used to ensure that the host responsible for that service address has not died. A failed, or dead, host stops sending messages, which alerts the present invention to reassign that hosts tasks.
- the transmission of the control messages is handled by the Service
- the Service Monitor associated with each service, such as SM1.
- the Service Monitor is multithreaded, for which the threads are created for: Transmit, Receive, Script, Control and DNS.
- the Transmit thread transmits the control message, while the Receive thread receives control messages from other hosts within the service group.
- the Script thread handles all events that may take too long for handling by the other threads, while the control thread determines which of the hosts within the service group will be "leader" and will make assignment decisions.
- the DNS thread simply updates the DNS. Each of these threads will be discussed in greater detail hereinafter. Referring next to Figure 3, the Transmit thread may be better understood.
- each host begins one Transmit thread for each service.
- the Transmit thread starts at step 300 in the "Sleep" state.
- the process advances at step 305 by invoking the test objects TO .
- On associated with that service followed at step 310 by checking whether the test is passed. If the tests fail, or a NO results at step 310, the process advances to step 320 and invokes a script to schedule the release of all current service addresses (so that the service addresses can be reassigned to another, non-failed host), after which a control message is created and sent at step 330.
- the process then loops back to sleep at step 300.
- step 350 load and capacity information (discussed above) is gathered from each of the load objects L01...L0n.
- the service address and timer data is then written if an Im alive time-out timer requires it.
- a control or info message is then created and sent at step 370 to communicate the state of the host to the remaining members of the service group, and at step 380 ARP packets are sent.
- the process then loops back to sleep at step 300. Thereafter, the daemon will restart the process after an appropriate time.
- the Receive thread is shown at a top level in Figure 4A, with Figures 4B-4D showing the various branches that are included as part of the Receive thread.
- the Receive thread initiates at step 400, and advances to step 402 where a message is received from another host within the service group. A check is then made at step 404 to determine whether the message is a duplicate; if so, the process loops back to step 402 to receive another message. If the message is not a duplicate, the process advances to step 406 and checks to see whether the message is an acquire message. If so, the process branches to Figure 4B, discussed below. If not, the process advances to step 408 and checks to see whether the message is a release message.
- step 410 a check is made to determine whether the message is an info, or control, message. If so, the process branches to Figure 4D, also discussed below. If not, the message is discarded and the process loops back to step 402.
- the Acquire process basically involves having the leader send a message identifying the source and destination id_addresses, together with which service address is to be acquired.
- the process starts at step 412 by checking whether the received acquire, message is for that host. If not, the process is done and returns at step 414 by looping to step 402. If the message is for that host, the process advances to check whether the message is from that hosts leader by comparing addresses in the Host Information Database. Again, if not, the process again returns at step 414. If the check at step 416 yields a YES, the process advances at step 418 and determines whether the receiving host is OK.
- step 420 a check is made to determine whether the host is quiesced (which can be ascertained from the Host Information Entry, although operator intervention is typically required to set the host as quiesced.) If the answer at step 420 is yes, no service address can be acquired, so the process again returns at step 414. However, if the host is not quiesced, a check is then made at step 422 to determine whether the host currently is servicing the service address identified in the acquire message. This can be determined by examining the hosts Host Info Entry. If so, there is no need to reacquire the "new" service address, and the process returns at 414.
- the process advances at step 424 by updating the Host Information database with an entry for the new service address, and an acquire action is scheduled at step 426.
- the "acquire" action is described in greater detail in connection with Figure 5B. The process then returns at step 414.
- the Release portion of the Receive thread can be better appreciated. From the following, it will be apparent to those skilled in the art that the Release portion is substantially similar to the Acquire portion.
- the process starts at step 432 by checking whether the message is for the receiving host. If not, the process returns at step 434. If so, the process advances to step 436 and checks whether the message is from the leader of that service group by comparing Host IDs in the Host Information database; if not, the process again returns at step 434. If the message is from the leader, then a check is made at step 440 (by looking at the relevant flag in the Host Info Entry) to determine if the identified service address to be released is on-line.
- the "Release message comprises source and destination id_addresses. If the service address to be released is not being serviced by the receiving host, the process returns at step 434. However, if the service address is being serviced, as determined by the listing in the Host Info Entry, the service address is first marked as "releasing" in the Service Address Information, and the Host Information database is updated at step 442 by deleting that service address from the list of service addresses serviced by that host, and the process advances to step 444 to schedule a release action. A release action is described in connection with Figure 5C. The process then returns at step 434.
- the response to an info, or control message can be understood.
- the response to an info message is simply to update the appropriate tables maintained by the receiving host, particularly the Host Information database referred to previously, which effectively updates the status of each service address.
- the process begins at step 450 by updating the Service Address database with the information received from the other host, and then advances to step 452 by updating table, or list, of addresses that should be served by the service group.
- the list specifies, for each service address, the last time that address was served by the preferred host, and resets a time-out timer that basically serves to confirm that the responsible host is alive and well. Once these tables are updated, the process returns at step 454.
- FIG. 5A shows the overall thread
- Figures 5B and SC show key branches of the thread.
- Scripts are generally more complicated processes, and because of this may be run after some delay rather than immediately.
- the process begins at 500 and advances to step 502 by removing the request for action from the queue.
- a check is then made at step 504 to determine whether the requested action is an "Acquire" action. If so, the process branches to Figure 5B. If not, the process advances to step 506 to determine whether the requested action is a "Release" action.
- step 508 a check is made to determine whether the action requested is a test failed action. If the check results in a YES, a "Test Failed" SNMP trap is sent at step 510. If the check results in a NO, the process advances to step 512 where a check is made to determine whether the requested action is a "Cannot Assign" action. If the check results in a YES, the process branches to step 514 and a "Cannot Assign" SNMP trap is sent. If the answer is a no, the process completes at step 516. Turning next to Figure 5B, the "Acquire" branch from Figure 5A may be better understood.
- the acquire process assigns a service address to a host.
- the branch begins at step 530 by configuring the hardware service interface for the software service address, and then advances to step 532 where the Acquire script is run.
- the process advances to step 534 and a check for errors is made. If no errors occurred, the process advances to step 536 and updates, for that service address, the Host Info Entry to On-line.
- the process then advances to step 538 and sends an SNMP Acquire trap, following which the process completes at step 540. If an error occurred at step 534, such that a YES was returned, the process advances to step 542 by configuring the service interface hardware to remove the service address.
- step 544 the process then continues at step 544 by updating the Host Info Entry for that service address to "not serving" and then, at step 546, sends the "Acquire fail" SNMP trap.
- the process then completes.
- the Release script branch of the Scripts thread can be better appreciated. Similar to the Acquire branch shown in Figure 5B, a release action causes a host to release one of the service addresses it has been handling. The branch begins at step 560, and runs the Release script. The service interface (hardware! is then configured at step 562 for the service address (software) to remove the service address being released.
- a check for errors is made at step 564, and if an error occurs a Release Fail trap is sent at step 566, after which the process completes at step 568. Whether or not an error occurs, a "Release" trap is sent at step 570 the Host Info Entry is also updated to remove the affected Service Address and the process completes.
- the Control thread of the service monitor can be better understood. The purpose of the Control thread is to establish which host within the service- group will be the leader, and to permit the leader to manage service addresses dynamically in accordance with the state of the system.
- the process starts at step 600 in the Sleep mode. When awakened, the processes advances at step 602 to determine who the leader is currently A check is made at step 604 to determine whether the current host is the leader If not, the process loops back to step 600.
- step 606 removes old, timed-out entries and silent host information by updating the database to the current state.
- a silent host is a host that has failed to send a control info message within the time-out period, such that the leader assumes the host to have died. This permits additional decisions, such as reassignment of the service addresses formerly served by a failed host to be made reliably by the leader.
- a control database is built at step 608, discussed in greater detail below. After the control database has been built, each of the service addresses is processed at step 610 to update its status to current information, also described in greater detail below. The process then loops back to the Sleep mode at step 600.
- the control database basically comprises three tables.
- the first is the control service address table, shown in Figure 6B, which sets forth four items: (1) the service address within the service group, (2) the states of each service address (i.e., acquiring, releasing, on-line, or unserved), (3) the preferred service address (or preferred id_address) of each host, and (4) a set of id_addresses which claim to service that service address.
- the second table is the control Spare_Host_List and the third is the Non_Spare_Eligible_List; these are simply a single-column list of IP addresses. For hot spares, the preferred service address is operator-configured to zero, or not assigned.
- the table is built through a pair of nested loops, beginning with an examination of the Host Information database.
- a pseduo-code representation for the outer nested loop of an exemplary embodiment is:
- id_address means the Host ID.
- id_address means the Host ID.
- a- check must be made by the leader for duplicate hosts serving the same service address, and one of the duplicates removed.
- all control decisions are made by the leader.
- the foregoing process can be seen to assign the service address to the preferred service address if that address is available; otherwise, the leader assigns the service address to an available hot spare. If neither of these works, the leader can simply pick one. The leader then tells the remaining service addresses to release the address. An exception to this process exists for the artificially injected address discussed above; in this instance, the artificially inserted address is not told to release.
- the final thread of the Service Monitor is the DNS thread.
- the DNS thread basically determines load versus capacity for load balancing, and is calculated from a comparison the utilization of the various service addresses both currently and historically.
- a first table or database M shown in Figure 6C, stores the historical utilization and weighted utilization for each service address, while a second table or database BB stores current utilization and weighted utilization for the various service addresses.
- databases M and BB have the same structure, with the data from database BB simply being transferred to database M as a new sample is entered in database BB.
- the pseudocode representation of the DNS thread can then be represented as follows:
- index starts at minimum of service address and ends at number of entries in BB) if (entry's weightedjjtil > high water mark) then remove entry endif endfor endif if not same list addresses as M then update DNS zone endif swap BB and M [i.e., current becomes last and last will become next current
- the scaling factor can be varied according to optimize performance according to a number of criteria.
- the scaling factor is typically in the range of 100 to 1000, so that the value of "Util" is an integer.
- the scaling factor, once selected, will typically remain fixed although some paradigms exist in which variation of the scaling factor may be desirable.
- the value of Delta is the difference between the high water mark and the low water mark, and is preset.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Multi Processors (AREA)
Abstract
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97952269A EP0978184B1 (fr) | 1996-12-09 | 1997-12-06 | Equilibrage de charge et reprise de services de reseau |
DE69738257T DE69738257D1 (de) | 1996-12-09 | 1997-12-06 | Lastausgleich und ausfallübergabe von netzwerkdiensten |
JP52679598A JP4087903B2 (ja) | 1996-12-09 | 1997-12-06 | ネットワーク・サービスの負荷平衡化及びフェールオーバ |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/763,289 | 1996-12-09 | ||
US08/763,289 US5938732A (en) | 1996-12-09 | 1996-12-09 | Load balancing and failover of network services |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1998026553A1 true WO1998026553A1 (fr) | 1998-06-18 |
Family
ID=25067406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1997/022117 WO1998026553A1 (fr) | 1996-12-09 | 1997-12-06 | Equilibrage de charge et reprise de services de reseau |
Country Status (5)
Country | Link |
---|---|
US (1) | US5938732A (fr) |
EP (1) | EP0978184B1 (fr) |
JP (1) | JP4087903B2 (fr) |
DE (1) | DE69738257D1 (fr) |
WO (1) | WO1998026553A1 (fr) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0990986A2 (fr) * | 1998-09-30 | 2000-04-05 | Ncr International Inc. | Rétablissement de défaillance de systèmes d'ordinateurs partagés contenant un schéma de base de données |
EP0992909A2 (fr) * | 1998-09-30 | 2000-04-12 | Ncr International Inc. | Provision de service de base de données et performance d'interrogation échelonnable par l'usage des copies redondantes |
WO2000031942A3 (fr) * | 1998-11-20 | 2000-10-05 | Network Alchemy Inc | Procede et appareil pour un processus tcp/ip d'equilibrage et de reprise dans un systeme de mise en grappe de reseau de protocole internet (ip) |
US6341356B1 (en) | 1999-03-25 | 2002-01-22 | International Business Machines Corporation | System for I/O path load balancing and failure which can be ported to a plurality of operating environments |
WO2001080003A3 (fr) * | 2000-04-17 | 2002-06-06 | Circadence Corp | Systeme et procede de decalage de fonctionnalites entre des serveurs web multiples |
DE10134492B4 (de) * | 2000-07-28 | 2006-02-09 | International Business Machines Corp. | Ausfallübernahme des Dateimanagementsystems in einem Rechnercluster |
EP1061710A3 (fr) * | 1999-06-17 | 2006-08-30 | International Business Machines Corporation | Système et méthode de répartition de charge intégrée et de gestion de ressources dans un environnement Internet |
US7890450B2 (en) | 2007-03-16 | 2011-02-15 | Fujitsu Limited | Policy creating apparatus, policy creating method, and computer product |
USRE45009E1 (en) | 2000-04-17 | 2014-07-08 | Circadence Corporation | Dynamic network link acceleration |
US8898340B2 (en) | 2000-04-17 | 2014-11-25 | Circadence Corporation | Dynamic network link acceleration for network including wireless communication devices |
US8923757B2 (en) | 2012-08-23 | 2014-12-30 | Blackberry Limited | Method, system and apparatus for service loss handling |
US8996705B2 (en) | 2000-04-17 | 2015-03-31 | Circadence Corporation | Optimization of enhanced network links |
US9088588B2 (en) | 2012-11-28 | 2015-07-21 | At&T Intellectual Property I, Lp | Method and apparatus for registering communication devices in a communication system |
US9148293B2 (en) | 2000-04-17 | 2015-09-29 | Circadence Corporation | Automated network infrastructure test and diagnostic system and method therefor |
US10033840B2 (en) | 2000-04-17 | 2018-07-24 | Circadence Corporation | System and devices facilitating dynamic network link acceleration |
Families Citing this family (147)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09245007A (ja) * | 1996-03-11 | 1997-09-19 | Toshiba Corp | 情報処理装置及び情報処理方法 |
US6101542A (en) * | 1996-07-19 | 2000-08-08 | Hitachi, Ltd. | Service management method and connection oriented network system using such management method |
US7273601B2 (en) * | 2000-07-18 | 2007-09-25 | The University Of Western Ontario | Preparation of radiolabelled haloaromatics via polymer-bound intermediates |
FR2773428B1 (fr) * | 1998-01-06 | 2000-02-04 | Bull Sa | Procede de communication dans un ensemble de systemes distribues via un reseau du type internet |
GB2334353B (en) * | 1998-02-12 | 2002-08-07 | Ibm | An apparatus,method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction stat |
US6112311A (en) * | 1998-02-20 | 2000-08-29 | International Business Machines Corporation | Bridge failover system |
US7401114B1 (en) * | 1998-04-20 | 2008-07-15 | Sun Microsystems, Inc. | Method and apparatus for making a computational service highly available |
US6115752A (en) * | 1998-05-21 | 2000-09-05 | Sun Microsystems, Inc. | System and method for server selection for mirrored sites |
US6311217B1 (en) * | 1998-06-04 | 2001-10-30 | Compaq Computer Corporation | Method and apparatus for improved cluster administration |
US6138159A (en) * | 1998-06-11 | 2000-10-24 | Phaal; Peter | Load direction mechanism |
US6078960A (en) * | 1998-07-03 | 2000-06-20 | Acceleration Software International Corporation | Client-side load-balancing in client server network |
US6327622B1 (en) | 1998-09-03 | 2001-12-04 | Sun Microsystems, Inc. | Load balancing in a network environment |
US6324580B1 (en) | 1998-09-03 | 2001-11-27 | Sun Microsystems, Inc. | Load balancing for replicated services |
US6092178A (en) * | 1998-09-03 | 2000-07-18 | Sun Microsystems, Inc. | System for responding to a resource request |
US7206849B1 (en) * | 1998-10-05 | 2007-04-17 | Symbol Technologies, Inc. | Communication in a wireless communications network when a mobile computer terminal may be unreachable |
US6765919B1 (en) * | 1998-10-23 | 2004-07-20 | Brocade Communications Systems, Inc. | Method and system for creating and implementing zones within a fibre channel system |
US6834302B1 (en) * | 1998-12-31 | 2004-12-21 | Nortel Networks Limited | Dynamic topology notification extensions for the domain name system |
US6507863B2 (en) * | 1999-01-27 | 2003-01-14 | International Business Machines Corporation | Dynamic multicast routing facility for a distributed computing environment |
US6412001B1 (en) | 1999-01-29 | 2002-06-25 | Sun Microsystems, Inc. | Method to monitor and control server applications using low cost covert channels |
US6745241B1 (en) * | 1999-03-31 | 2004-06-01 | International Business Machines Corporation | Method and system for dynamic addition and removal of multiple network names on a single server |
US6516350B1 (en) * | 1999-06-17 | 2003-02-04 | International Business Machines Corporation | Self-regulated resource management of distributed computer resources |
US6446218B1 (en) * | 1999-06-30 | 2002-09-03 | B-Hub, Inc. | Techniques for maintaining fault tolerance for software programs in a clustered computer system |
US6374297B1 (en) * | 1999-08-16 | 2002-04-16 | International Business Machines Corporation | Method and apparatus for load balancing of web cluster farms |
JP3636947B2 (ja) * | 1999-08-31 | 2005-04-06 | 株式会社日立製作所 | 情報サービスシステム、サービス利用クライアント及びサービス規制方法 |
US6667980B1 (en) * | 1999-10-21 | 2003-12-23 | Sun Microsystems, Inc. | Method and apparatus for providing scalable services using a packet distribution table |
US6735206B1 (en) | 2000-01-10 | 2004-05-11 | Sun Microsystems, Inc. | Method and apparatus for performing a fast service lookup in cluster networking |
US6587866B1 (en) | 2000-01-10 | 2003-07-01 | Sun Microsystems, Inc. | Method for distributing packets to server nodes using network client affinity and packet distribution table |
US6862613B1 (en) | 2000-01-10 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus for managing operations of clustered computer systems |
US6735205B1 (en) | 2000-01-10 | 2004-05-11 | Sun Microsystems, Inc. | Method and apparatus for fast packet forwarding in cluster networking |
US6938256B2 (en) | 2000-01-18 | 2005-08-30 | Galactic Computing Corporation | System for balance distribution of requests across multiple servers using dynamic metrics |
JP3833117B2 (ja) * | 2000-01-31 | 2006-10-11 | 富士通株式会社 | サーバ決定方法及び装置 |
US7054948B2 (en) * | 2000-03-07 | 2006-05-30 | Opcoast Llc | Collaborative host masquerading system |
US6732189B1 (en) * | 2000-03-20 | 2004-05-04 | International Business Machines Corporation | Method and apparatus for fault tolerant tunneling of multicast datagrams |
US6898727B1 (en) * | 2000-03-22 | 2005-05-24 | Emc Corporation | Method and apparatus for providing host resources for an electronic commerce site |
US20010047387A1 (en) * | 2000-03-27 | 2001-11-29 | Exoplex, Inc. | Systems and methods for providing distributed cross-enterprise portals |
US7266490B2 (en) | 2000-12-28 | 2007-09-04 | Robert Marc Zeidman | Apparatus and method for connecting hardware to a circuit simulation |
US8160863B2 (en) * | 2000-03-28 | 2012-04-17 | Ionipas Transfer Company, Llc | System and method for connecting a logic circuit simulation to a network |
US6993587B1 (en) * | 2000-04-07 | 2006-01-31 | Network Appliance Inc. | Method and apparatus for election of group leaders in a distributed network |
US6701449B1 (en) | 2000-04-20 | 2004-03-02 | Ciprico, Inc. | Method and apparatus for monitoring and analyzing network appliance status information |
US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
EP1297412B1 (fr) * | 2000-05-08 | 2008-04-16 | Citrix Systems, Inc. | Systeme et procede d'envoi de donnees operationnelles dans un reseau de serveurs |
US6785726B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for delivering local and remote server events in a similar fashion |
US6785713B1 (en) * | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for communicating among a network of servers utilizing a transport mechanism |
US6789112B1 (en) | 2000-05-08 | 2004-09-07 | Citrix Systems, Inc. | Method and apparatus for administering a server having a subsystem in communication with an event channel |
US7280529B1 (en) * | 2000-05-20 | 2007-10-09 | Ciena Corporation | Providing network management access through user profiles |
US7844513B2 (en) | 2000-07-17 | 2010-11-30 | Galactic Computing Corporation Bvi/Bc | Method and system for operating a commissioned e-commerce service prover |
KR100840960B1 (ko) | 2000-07-17 | 2008-06-24 | 갈랙틱 컴퓨팅 코포레이션 비브이아이/아이비씨 | 동적 호스트 서비스 관리를 제공하기 위한 방법 및 시스템 |
US6816905B1 (en) | 2000-11-10 | 2004-11-09 | Galactic Computing Corporation Bvi/Bc | Method and system for providing dynamic hosted service management across disparate accounts/sites |
US8538843B2 (en) | 2000-07-17 | 2013-09-17 | Galactic Computing Corporation Bvi/Bc | Method and system for operating an E-commerce service provider |
AU2000266395A1 (en) * | 2000-08-11 | 2002-02-25 | George Mount | Server-side session management |
US7194549B1 (en) * | 2000-09-06 | 2007-03-20 | Vulcan Patents Llc | Multicast system using client forwarding |
DE20017445U1 (de) * | 2000-10-11 | 2001-03-08 | Wall, Georg, 81375 München | Verbindungselement für Spundbohlen |
US6813635B1 (en) * | 2000-10-13 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | System and method for distributing load among redundant independent stateful world wide web server sites |
US7606898B1 (en) | 2000-10-24 | 2009-10-20 | Microsoft Corporation | System and method for distributed management of shared computers |
US7113900B1 (en) | 2000-10-24 | 2006-09-26 | Microsoft Corporation | System and method for logical modeling of distributed computer systems |
US6938122B2 (en) * | 2001-01-23 | 2005-08-30 | Emc Corporation | Remote mirroring in a switched environment |
US8176137B2 (en) * | 2001-01-31 | 2012-05-08 | Accenture Global Services Limited | Remotely managing a data processing system via a communications network |
US7389341B2 (en) * | 2001-01-31 | 2008-06-17 | Accenture Llp | Remotely monitoring a data processing system via a communications network |
JP2002244870A (ja) * | 2001-02-19 | 2002-08-30 | Hitachi Ltd | システム管理支援方法及び装置 |
US20020143946A1 (en) * | 2001-03-28 | 2002-10-03 | Daniel Crosson | Software based internet protocol address selection method and system |
US7366194B2 (en) | 2001-04-18 | 2008-04-29 | Brocade Communications Systems, Inc. | Fibre channel zoning by logical unit number in hardware |
US7113993B1 (en) * | 2001-06-20 | 2006-09-26 | Microstrategy, Inc. | Technique for handling server session requests in a system having a plurality of servers |
US6922791B2 (en) * | 2001-08-09 | 2005-07-26 | Dell Products L.P. | Failover system and method for cluster environment |
US7305674B2 (en) * | 2001-08-31 | 2007-12-04 | International Business Machines Corporation | Method and apparatus to manage multi-computer supply |
US7039916B2 (en) * | 2001-09-24 | 2006-05-02 | Intel Corporation | Data delivery system for adjusting assignment of connection requests to nodes based upon the tracked duration |
US6938031B1 (en) | 2001-10-19 | 2005-08-30 | Data Return Llc | System and method for accessing information in a replicated database |
US7000016B1 (en) | 2001-10-19 | 2006-02-14 | Data Return Llc | System and method for multi-site clustering in a network |
US6811085B2 (en) * | 2001-10-26 | 2004-11-02 | Symbol Technologies, Inc. | Miniature imager |
US8578215B2 (en) * | 2001-11-19 | 2013-11-05 | Hewlett-Packard Development Company, L.P. | Method and system for gathering data using automatic appliance failover |
US7349995B2 (en) * | 2002-03-07 | 2008-03-25 | Intel Corporation | Computing device with scalable logic block to respond to data transfer requests |
US8484370B1 (en) * | 2002-04-16 | 2013-07-09 | Trimble Navigation Limited | Method and system for efficient extended data communications using GPRS |
FI119407B (fi) * | 2002-08-28 | 2008-10-31 | Sap Ag | Korkean palvelutason ohjelmistopohjainen yhteyspalvelin |
US7243351B2 (en) * | 2002-12-17 | 2007-07-10 | International Business Machines Corporation | System and method for task scheduling based upon the classification value and probability |
US7469290B1 (en) * | 2002-12-31 | 2008-12-23 | Emc Corporation | Automatic system resource management |
US20040260710A1 (en) * | 2003-02-28 | 2004-12-23 | Marston Justin P. | Messaging system |
US7352740B2 (en) * | 2003-04-29 | 2008-04-01 | Brocade Communciations Systems, Inc. | Extent-based fibre channel zoning in hardware |
US7287179B2 (en) * | 2003-05-15 | 2007-10-23 | International Business Machines Corporation | Autonomic failover of grid-based services |
US7194655B2 (en) * | 2003-06-12 | 2007-03-20 | International Business Machines Corporation | Method and system for autonomously rebuilding a failed server and a computer system utilizing the same |
US7590736B2 (en) | 2003-06-30 | 2009-09-15 | Microsoft Corporation | Flexible network load balancing |
US7636917B2 (en) | 2003-06-30 | 2009-12-22 | Microsoft Corporation | Network load balancing with host status information |
US7567504B2 (en) * | 2003-06-30 | 2009-07-28 | Microsoft Corporation | Network load balancing with traffic routing |
US7613822B2 (en) * | 2003-06-30 | 2009-11-03 | Microsoft Corporation | Network load balancing with session information |
US7606929B2 (en) | 2003-06-30 | 2009-10-20 | Microsoft Corporation | Network load balancing with connection manipulation |
US20050027862A1 (en) * | 2003-07-18 | 2005-02-03 | Nguyen Tien Le | System and methods of cooperatively load-balancing clustered servers |
US8028236B2 (en) * | 2003-10-17 | 2011-09-27 | International Business Machines Corporation | System services enhancement for displaying customized views |
US20050144242A1 (en) * | 2003-10-31 | 2005-06-30 | Justin Marston | Caching in an electronic messaging system |
US20050198168A1 (en) * | 2003-12-04 | 2005-09-08 | Justin Marston | Messaging protocol discovery |
US7454502B2 (en) * | 2003-12-04 | 2008-11-18 | International Business Machines Corporation | System for transferring standby resource entitlement |
US7430203B2 (en) * | 2004-01-29 | 2008-09-30 | Brocade Communications Systems, Inc. | Fibre channel zoning hardware for directing a data packet to an external processing device |
JP2005217815A (ja) * | 2004-01-30 | 2005-08-11 | Hitachi Ltd | パス制御方法 |
CN100370770C (zh) * | 2004-03-03 | 2008-02-20 | 华为技术有限公司 | 实现网络长连接倒换的方法 |
US20050256935A1 (en) * | 2004-05-06 | 2005-11-17 | Overstreet Matthew L | System and method for managing a network |
US20060031352A1 (en) * | 2004-05-12 | 2006-02-09 | Justin Marston | Tamper-proof electronic messaging |
WO2005109794A1 (fr) * | 2004-05-12 | 2005-11-17 | Bluespace Group Ltd | Application de politiques de conformite dans un systeme de messagerie |
US20060069700A1 (en) * | 2004-09-22 | 2006-03-30 | Justin Marston | Generating relational structure for non-relational messages |
US8990365B1 (en) | 2004-09-27 | 2015-03-24 | Alcatel Lucent | Processing management packets |
US7904546B1 (en) * | 2004-09-27 | 2011-03-08 | Alcatel-Lucent Usa Inc. | Managing processes on a network device |
US7516181B1 (en) | 2005-02-08 | 2009-04-07 | Microstrategy, Inc. | Technique for project partitioning in a cluster of servers |
US8572431B2 (en) * | 2005-02-23 | 2013-10-29 | Barclays Capital Inc. | Disaster recovery framework |
JP4161998B2 (ja) * | 2005-03-28 | 2008-10-08 | 日本電気株式会社 | 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム |
JP4241660B2 (ja) * | 2005-04-25 | 2009-03-18 | 株式会社日立製作所 | 負荷分散装置 |
US8040899B2 (en) * | 2005-05-26 | 2011-10-18 | Genband Us Llc | Methods, systems, and computer program products for implementing automatic protection switching for media packets transmitted over an ethernet switching fabric |
US8645313B1 (en) | 2005-05-27 | 2014-02-04 | Microstrategy, Inc. | Systems and methods for enhanced SQL indices for duplicate row entries |
JP4270184B2 (ja) * | 2005-09-05 | 2009-05-27 | コニカミノルタビジネステクノロジーズ株式会社 | ネットワーク画像処理システム、ネットワーク画像処理装置、ネットワーク画像処理方法 |
US7911940B2 (en) | 2005-09-30 | 2011-03-22 | Genband Us Llc | Adaptive redundancy protection scheme |
US7941309B2 (en) | 2005-11-02 | 2011-05-10 | Microsoft Corporation | Modeling IT operations/policies |
US7860968B2 (en) * | 2005-11-21 | 2010-12-28 | Sap Ag | Hierarchical, multi-tiered mapping and monitoring architecture for smart items |
US8005879B2 (en) | 2005-11-21 | 2011-08-23 | Sap Ag | Service-to-device re-mapping for smart items |
US8156208B2 (en) | 2005-11-21 | 2012-04-10 | Sap Ag | Hierarchical, multi-tiered mapping and monitoring architecture for service-to-device re-mapping for smart items |
US8635348B2 (en) * | 2005-12-07 | 2014-01-21 | Intel Corporation | Switch fabric service hosting |
US8015304B2 (en) * | 2005-12-12 | 2011-09-06 | International Business Machines Corporation | Method to distribute speech resources in a media server |
US8140695B2 (en) * | 2005-12-12 | 2012-03-20 | International Business Machines Corporation | Load balancing and failover of distributed media resources in a media server |
WO2007082308A2 (fr) * | 2006-01-13 | 2007-07-19 | Bluespace Software Corp. | Détermination de la pertinence d’un contenu électronique |
US7881188B2 (en) | 2006-02-03 | 2011-02-01 | Genband Us Llc | Methods, systems, and computer program products for implementing link redundancy in a media gateway |
US8522341B2 (en) | 2006-03-31 | 2013-08-27 | Sap Ag | Active intervention in service-to-device mapping for smart items |
US8131838B2 (en) | 2006-05-31 | 2012-03-06 | Sap Ag | Modular monitor service for smart item monitoring |
US8296413B2 (en) | 2006-05-31 | 2012-10-23 | Sap Ag | Device registration in a hierarchical monitor service |
US8396788B2 (en) | 2006-07-31 | 2013-03-12 | Sap Ag | Cost-based deployment of components in smart item environments |
US8141164B2 (en) | 2006-08-21 | 2012-03-20 | Citrix Systems, Inc. | Systems and methods for dynamic decentralized load balancing across multiple sites |
US20080147885A1 (en) * | 2006-12-16 | 2008-06-19 | Lucent Technologies Inc. | Systems and methods for resolving resource names to ip addresses with load distribution and admission control |
JP4924157B2 (ja) * | 2007-03-30 | 2012-04-25 | 富士ゼロックス株式会社 | 識別子割り当て装置、識別子割り当てシステムおよび識別子割り当てプログラム |
US8069251B2 (en) | 2007-06-01 | 2011-11-29 | Adobe Systems Incorporated | System and/or method for client-driven server load distribution |
WO2009004734A1 (fr) * | 2007-07-05 | 2009-01-08 | Fujitsu Limited | Système de serveur virtuel, procédé de commande de système de serveur virtuel, programme de commande de système de serveur virtuel, et équilibreur de charge d'exploitation |
US8527622B2 (en) | 2007-10-12 | 2013-09-03 | Sap Ag | Fault tolerance framework for networks of nodes |
WO2009127219A1 (fr) * | 2008-04-14 | 2009-10-22 | Telecom Italia S.P.A. | Architecture de service distribuée |
US8612524B2 (en) * | 2009-10-28 | 2013-12-17 | Hewlett-Packard Development Company, L.P. | Cessation of sending network status messages to a server |
US8472311B2 (en) | 2010-02-04 | 2013-06-25 | Genband Us Llc | Systems, methods, and computer readable media for providing instantaneous failover of packet processing elements in a network |
US9170892B2 (en) | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US8996611B2 (en) | 2011-01-31 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel serialization of request processing |
US8438244B2 (en) | 2010-04-19 | 2013-05-07 | Microsoft Corporation | Bandwidth-proportioned datacenters |
US8533299B2 (en) | 2010-04-19 | 2013-09-10 | Microsoft Corporation | Locator table and client library for datacenters |
US8447833B2 (en) * | 2010-04-19 | 2013-05-21 | Microsoft Corporation | Reading and writing during cluster growth phase |
US9813529B2 (en) | 2011-04-28 | 2017-11-07 | Microsoft Technology Licensing, Llc | Effective circuits in packet-switched networks |
US9454441B2 (en) | 2010-04-19 | 2016-09-27 | Microsoft Technology Licensing, Llc | Data layout for recovery and durability |
US8542590B2 (en) * | 2010-11-30 | 2013-09-24 | Verizon Patent And Licensing Inc. | Bi-directional load balancing |
US8584211B1 (en) | 2011-05-18 | 2013-11-12 | Bluespace Software Corporation | Server-based architecture for securely providing multi-domain applications |
US8843502B2 (en) | 2011-06-24 | 2014-09-23 | Microsoft Corporation | Sorting a dataset of incrementally received data |
US9253144B2 (en) | 2011-12-22 | 2016-02-02 | International Business Machines Corporation | Client-driven load balancing of dynamic IP address allocation |
US9778856B2 (en) | 2012-08-30 | 2017-10-03 | Microsoft Technology Licensing, Llc | Block-level access to parallel storage |
US10021042B2 (en) | 2013-03-07 | 2018-07-10 | Microsoft Technology Licensing, Llc | Service-based load-balancing management of processes on remote hosts |
US11422907B2 (en) | 2013-08-19 | 2022-08-23 | Microsoft Technology Licensing, Llc | Disconnected operation for systems utilizing cloud storage |
US9286179B1 (en) * | 2013-09-19 | 2016-03-15 | Amazon Technologies, Inc. | Service testing framework |
US9798631B2 (en) | 2014-02-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Block storage by decoupling ordering from durability |
CN104834722B (zh) * | 2015-05-12 | 2018-03-02 | 网宿科技股份有限公司 | 基于cdn的内容管理系统 |
US10469311B2 (en) | 2017-07-13 | 2019-11-05 | Cisco Technology, Inc. | Handling network failures in networks with redundant servers |
US11057478B2 (en) * | 2019-05-23 | 2021-07-06 | Fortinet, Inc. | Hybrid cluster architecture for reverse proxies |
US11055196B1 (en) | 2020-06-12 | 2021-07-06 | Bank Of America Corporation | System and method for optimizing technology stack architecture |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0384339A2 (fr) * | 1989-02-24 | 1990-08-29 | Digital Equipment Corporation | Courtier pour la sélection de serveur de réseau d'ordinateur |
EP0817020A2 (fr) * | 1996-07-01 | 1998-01-07 | Sun Microsystems, Inc. | Service de noms pour un réseau redondant de serveurs Internet |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5005122A (en) * | 1987-09-08 | 1991-04-02 | Digital Equipment Corporation | Arrangement with cooperating management server node and network service node |
US5089958A (en) * | 1989-01-23 | 1992-02-18 | Vortex Systems, Inc. | Fault tolerant computer backup system |
US5307481A (en) * | 1990-02-28 | 1994-04-26 | Hitachi, Ltd. | Highly reliable online system |
US5367698A (en) * | 1991-10-31 | 1994-11-22 | Epoch Systems, Inc. | Network file migration system |
US5448718A (en) * | 1992-04-20 | 1995-09-05 | International Business Machines Corporation | Method and system for time zero backup session security |
US5771354A (en) * | 1993-11-04 | 1998-06-23 | Crawford; Christopher M. | Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services |
US5774660A (en) * | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
-
1996
- 1996-12-09 US US08/763,289 patent/US5938732A/en not_active Expired - Lifetime
-
1997
- 1997-12-06 WO PCT/US1997/022117 patent/WO1998026553A1/fr active IP Right Grant
- 1997-12-06 EP EP97952269A patent/EP0978184B1/fr not_active Expired - Lifetime
- 1997-12-06 JP JP52679598A patent/JP4087903B2/ja not_active Expired - Lifetime
- 1997-12-06 DE DE69738257T patent/DE69738257D1/de not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0384339A2 (fr) * | 1989-02-24 | 1990-08-29 | Digital Equipment Corporation | Courtier pour la sélection de serveur de réseau d'ordinateur |
EP0817020A2 (fr) * | 1996-07-01 | 1998-01-07 | Sun Microsystems, Inc. | Service de noms pour un réseau redondant de serveurs Internet |
Non-Patent Citations (3)
Title |
---|
"LOCAL AREA NETWORK SERVER REPLACEMENT PROCEDURE", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 38, no. 1, 1 January 1995 (1995-01-01), pages 235/236, XP000498750 * |
ADLER R M: "DISTRIBUTED COORDINATION MODELS FOR CLIENT/SERVER COMPUTING", COMPUTER, vol. 28, no. 4, 1 April 1995 (1995-04-01), pages 14 - 22, XP000507856 * |
JI HUA XIE LI: "A DISTRIBUTED COMPUTING MODEL BASED ON MULTISERVER", OPERATING SYSTEMS REVIEW (SIGOPS), vol. 30, no. 4, October 1996 (1996-10-01), pages 3 - 11, XP000639695 * |
Cited By (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0992909A2 (fr) * | 1998-09-30 | 2000-04-12 | Ncr International Inc. | Provision de service de base de données et performance d'interrogation échelonnable par l'usage des copies redondantes |
JP2000112911A (ja) * | 1998-09-30 | 2000-04-21 | Ncr Internatl Inc | コンピュ―タネットワ―クにおけるデ―タベ―ス管理システムにおいて自動的にタスクを再分配するシステム及び方法 |
JP2000137694A (ja) * | 1998-09-30 | 2000-05-16 | Ncr Internatl Inc | 常用冗長コピ―を用いた継続的デ―タベ―スアクセスを提供するシステム及び方法 |
EP0992909A3 (fr) * | 1998-09-30 | 2001-12-19 | Ncr International Inc. | Provision de service de base de données et performance d'interrogation échelonnable par l'usage des copies redondantes |
EP0990986A2 (fr) * | 1998-09-30 | 2000-04-05 | Ncr International Inc. | Rétablissement de défaillance de systèmes d'ordinateurs partagés contenant un schéma de base de données |
EP0990986A3 (fr) * | 1998-09-30 | 2008-01-23 | Ncr International Inc. | Rétablissement de défaillance de systèmes d'ordinateurs partagés contenant un schéma de base de données |
WO2000031942A3 (fr) * | 1998-11-20 | 2000-10-05 | Network Alchemy Inc | Procede et appareil pour un processus tcp/ip d'equilibrage et de reprise dans un systeme de mise en grappe de reseau de protocole internet (ip) |
US6341356B1 (en) | 1999-03-25 | 2002-01-22 | International Business Machines Corporation | System for I/O path load balancing and failure which can be ported to a plurality of operating environments |
EP1061710A3 (fr) * | 1999-06-17 | 2006-08-30 | International Business Machines Corporation | Système et méthode de répartition de charge intégrée et de gestion de ressources dans un environnement Internet |
USRE45009E1 (en) | 2000-04-17 | 2014-07-08 | Circadence Corporation | Dynamic network link acceleration |
US10033840B2 (en) | 2000-04-17 | 2018-07-24 | Circadence Corporation | System and devices facilitating dynamic network link acceleration |
US7043563B2 (en) | 2000-04-17 | 2006-05-09 | Circadence Corporation | Method and system for redirection to arbitrary front-ends in a communication system |
US10931775B2 (en) | 2000-04-17 | 2021-02-23 | Circadence Corporation | Optimization of enhanced network links |
US7111006B2 (en) | 2000-04-17 | 2006-09-19 | Circadence Corporation | System and method for providing distributed database services |
US7120662B2 (en) | 2000-04-17 | 2006-10-10 | Circadence Corporation | Conductor gateway prioritization parameters |
US7127518B2 (en) | 2000-04-17 | 2006-10-24 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure |
US7143195B2 (en) | 2000-04-17 | 2006-11-28 | Circadence Corporation | HTTP redirector |
US7155539B2 (en) | 2000-04-17 | 2006-12-26 | Circadence Corporation | Conductor gateway buffer prioritization |
US6990531B2 (en) | 2000-04-17 | 2006-01-24 | Circadence Corporation | System and method for providing last-mile data prioritization |
US10858503B2 (en) | 2000-04-17 | 2020-12-08 | Circadence Corporation | System and devices facilitating dynamic network link acceleration |
WO2001080003A3 (fr) * | 2000-04-17 | 2002-06-06 | Circadence Corp | Systeme et procede de decalage de fonctionnalites entre des serveurs web multiples |
US8898340B2 (en) | 2000-04-17 | 2014-11-25 | Circadence Corporation | Dynamic network link acceleration for network including wireless communication devices |
US10819826B2 (en) | 2000-04-17 | 2020-10-27 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure |
US8977712B2 (en) | 2000-04-17 | 2015-03-10 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure including a wireless communication link |
US8977711B2 (en) | 2000-04-17 | 2015-03-10 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure including wirelessly coupled devices |
US8996705B2 (en) | 2000-04-17 | 2015-03-31 | Circadence Corporation | Optimization of enhanced network links |
US10516751B2 (en) | 2000-04-17 | 2019-12-24 | Circadence Corporation | Optimization of enhanced network links |
US9148293B2 (en) | 2000-04-17 | 2015-09-29 | Circadence Corporation | Automated network infrastructure test and diagnostic system and method therefor |
US9185185B2 (en) | 2000-04-17 | 2015-11-10 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure |
US9380129B2 (en) | 2000-04-17 | 2016-06-28 | Circadence Corporation | Data redirection system and method therefor |
US9436542B2 (en) | 2000-04-17 | 2016-09-06 | Circadence Corporation | Automated network infrastructure test and diagnostic system and method therefor |
US9578124B2 (en) | 2000-04-17 | 2017-02-21 | Circadence Corporation | Optimization of enhanced network links |
US9723105B2 (en) | 2000-04-17 | 2017-08-01 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure |
US9923987B2 (en) | 2000-04-17 | 2018-03-20 | Circadence Corporation | Optimization of enhanced network links |
US7020783B2 (en) | 2000-04-17 | 2006-03-28 | Circadence Corporation | Method and system for overcoming denial of service attacks |
US10154115B2 (en) | 2000-04-17 | 2018-12-11 | Circadence Corporation | System and method for implementing application functionality within a network infrastructure |
US10205795B2 (en) | 2000-04-17 | 2019-02-12 | Circadence Corporation | Optimization of enhanced network links |
US10329410B2 (en) | 2000-04-17 | 2019-06-25 | Circadence Corporation | System and devices facilitating dynamic network link acceleration |
DE10134492B4 (de) * | 2000-07-28 | 2006-02-09 | International Business Machines Corp. | Ausfallübernahme des Dateimanagementsystems in einem Rechnercluster |
US7890450B2 (en) | 2007-03-16 | 2011-02-15 | Fujitsu Limited | Policy creating apparatus, policy creating method, and computer product |
US8923757B2 (en) | 2012-08-23 | 2014-12-30 | Blackberry Limited | Method, system and apparatus for service loss handling |
US9088588B2 (en) | 2012-11-28 | 2015-07-21 | At&T Intellectual Property I, Lp | Method and apparatus for registering communication devices in a communication system |
Also Published As
Publication number | Publication date |
---|---|
EP0978184B1 (fr) | 2007-10-31 |
JP4087903B2 (ja) | 2008-05-21 |
US5938732A (en) | 1999-08-17 |
JP2002500785A (ja) | 2002-01-08 |
DE69738257D1 (de) | 2007-12-13 |
EP0978184A1 (fr) | 2000-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5938732A (en) | Load balancing and failover of network services | |
US6330605B1 (en) | Proxy cache cluster | |
EP0880741B1 (fr) | Procede et dispositif de connexion d'un noeud client a un noeud serveur, tenant compte des niveaux de charge | |
US7370223B2 (en) | System and method for managing clusters containing multiple nodes | |
US6965930B1 (en) | Methods, systems and computer program products for workload distribution based on end-to-end quality of service | |
EP0817020B1 (fr) | Service de noms pour un réseau redondant de serveurs Internet | |
US7843811B2 (en) | Method of solving a split-brain condition | |
US6859830B1 (en) | Method and system for detecting a dead server | |
US7702791B2 (en) | Hardware load-balancing apparatus for session replication | |
US7757236B1 (en) | Load-balancing framework for a cluster | |
US7558859B2 (en) | Peer-to-peer auction based data distribution | |
US6411967B1 (en) | Distributed processing system with replicated management information base | |
US7747741B2 (en) | Method and apparatus for dynamic resource discovery and information distribution in a data network | |
US7353295B1 (en) | Distributed services architecture through use of a dynamic service point map | |
US7225356B2 (en) | System for managing operational failure occurrences in processing devices | |
US7409420B2 (en) | Method and apparatus for session replication and failover | |
US7676516B2 (en) | System and method for the optimization of database access in data base networks | |
US6963917B1 (en) | Methods, systems and computer program products for policy based distribution of workload to subsets of potential servers | |
US20020087612A1 (en) | System and method for reliability-based load balancing and dispatching using software rejuvenation | |
EP1192545B1 (fr) | Dispositif de sauvegarde de session de serveur d'internet | |
CN100568214C (zh) | 用于会话复制和故障切换的方法和装置 | |
GB2285727A (en) | Resolving conflicting topology network information in data communications networks | |
JPH09218842A (ja) | ロードシェアシステム | |
Singhai et al. | The SunSCALR framework for internet servers | |
US6535923B1 (en) | Method and system for defining an efficient and reliable meshing of CP-CP sessions in an advanced peer to peer network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1997952269 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 1998 526795 Kind code of ref document: A Format of ref document f/p: F |
|
WWP | Wipo information: published in national office |
Ref document number: 1997952269 Country of ref document: EP |
|
WWG | Wipo information: grant in national office |
Ref document number: 1997952269 Country of ref document: EP |