Dynamic network load balancing using roundtrip heuristic
First Claim
1. A method, comprising:
- using a processor of a first server of a cluster, selecting a second server for load balancing with the first server using a tree-based, recursive algorithm;
determining a relative load between the first server and the second server of the cluster based upon a first time value that corresponds to a quantity of time taken by the first server to handle a packet set comprising at least one packet measured as a difference between a timestamp associated with a response to the packet set sent by the first server and a timestamp associated with receipt of the packet set by the first server, the packet set exercising a longest packet-processing path in the first server, and a second time value corresponding to a quantity of time taken by the second server to handle a packet set comprising at least one packet measured as a difference between a timestamp associated with a response to the packet set sent by the second server and a timestamp associated with receipt of the packet set by the second server, wherein each of the first server and the second server comprises a packet handing selection mechanism and each of the packet handling selection mechanism includes a plurality of values in which each value is used to determine whether to handle an incoming request based on a hash of an IP (Internet Protocol) address associated with that incoming request; and
transferring, by the first server, at least some load from the first server to the second server based upon the relative load by altering values of the packet handling selection mechanism of the first server and the second server.
2 Assignments
0 Petitions
Accused Products
Abstract
Described is a technology by which a relative load of network traffic handling is determined between servers of a cluster, based upon time values that correspond to the time taken by each server to handle a packet. Load may then be transferred between the servers based upon the relative load, for example by having a less-loaded server take some of the responsibility for processing incoming traffic from a more-loaded server. For example, the processing time of a server may be determined by when a receiving server receives a request packet, and when that server sends a return packet. A round trip time for a request and return communication may also be established. A logical tree of nodes representing the servers may be constructed to select pairs of servers for balancing with one another, with the selection algorithm operating recursively, in parallel, and/or repeatedly, until the cluster is balanced.
46 Citations
15 Claims
-
1. A method, comprising:
-
using a processor of a first server of a cluster, selecting a second server for load balancing with the first server using a tree-based, recursive algorithm; determining a relative load between the first server and the second server of the cluster based upon a first time value that corresponds to a quantity of time taken by the first server to handle a packet set comprising at least one packet measured as a difference between a timestamp associated with a response to the packet set sent by the first server and a timestamp associated with receipt of the packet set by the first server, the packet set exercising a longest packet-processing path in the first server, and a second time value corresponding to a quantity of time taken by the second server to handle a packet set comprising at least one packet measured as a difference between a timestamp associated with a response to the packet set sent by the second server and a timestamp associated with receipt of the packet set by the second server, wherein each of the first server and the second server comprises a packet handing selection mechanism and each of the packet handling selection mechanism includes a plurality of values in which each value is used to determine whether to handle an incoming request based on a hash of an IP (Internet Protocol) address associated with that incoming request; and transferring, by the first server, at least some load from the first server to the second server based upon the relative load by altering values of the packet handling selection mechanism of the first server and the second server. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a cluster of servers, a method comprising:
-
selecting by a first server of the cluster, a second server of the cluster for load balancing with the first server using a tree-based, recursive algorithm; measuring, by a first server, a first time for the first server to handle a packet set comprising at least one packet, the first time measured as a difference between a timestamp associated with a response to the packet set sent by the first server and a timestamp associated with receipt of the packet set by the first server; determining, by the first server, a second time for a second server to handle another packet set comprising at least one packet, the second time determined as a difference between a timestamp associated with a response to the packet set sent by the second server and a timestamp associated with receipt of the packet set by the second server, wherein each of the first server and the second server comprises a packet handing selection mechanism and each of the packet handling selection mechanism includes a plurality of values in which each value is used to determine whether to handle an incoming request based on a hash of an IP (Internet Protocol) address associated with that incoming request; and assigning responsibility for handling incoming network traffic to the first server and the second server, by the first server, based upon the first and second times by altering values of the packet handling selection mechanism of the first server and the second server. - View Dependent Claims (7, 8, 9)
-
-
10. In a cluster of servers that share handling of network traffic load, a computing device comprising:
a first server comprising a processor coupled to a memory, the memory storing a load balancing component that; selects a second server for load balancing with the first server using a tree-based, recursive algorithm; measures a packet handling time of the first server as a difference between a timestamp associated with a response to a packet set sent by the first server and a timestamp associated with receipt of the packet set by the first server and determines a packet handling time of the second server as a difference between a timestamp associated with a response to the packet set sent by the second server and a timestamp associated with receipt of the packet set by the second server; determines a relative load between the first server and a second server of the cluster based on the packet handling times taken by those servers, wherein each of the first server and the second server comprises a packet handing selection mechanism and each of the packet handling selection mechanism includes a plurality of values in which each value is used to determine whether to handle an incoming request based on a hash of an IP (Internet Protocol) address associated with that incoming request; and the first server load balances the network traffic load between the servers based on the relative load by altering values of the packet handling selection mechanism of the first server and the second server. - View Dependent Claims (11, 12, 13, 14, 15)
Specification