US10742723B2ActiveUtilityA1

Load-balancing cluster

54
Assignee: LEVEL 3 COMMUNICATIONS LLCPriority: Feb 28, 2008Filed: Nov 21, 2015Granted: Aug 11, 2020
Est. expiryFeb 28, 2028(~1.6 yrs left)· nominal 20-yr term from priority
H04L 61/2528H04L 67/568H04L 61/5007H04L 67/1001H04L 67/1068H04L 67/101H04L 67/1023H04L 67/141H04L 67/02H04L 69/326H04L 67/1036H04L 67/1014H04L 29/12405H04L 61/2007H04L 67/2842H04L 67/1002
54
PatentIndex Score
0
Cited by
109
References
20
Claims

Abstract

A load-balancing cluster includes a switch having a plurality of ports; and a plurality of servers connected to at least some of the plurality of ports of the switch. Each server is addressable by the same virtual Internet Protocol (VIP) address. Each server in the cluster has a mechanism constructed and adapted to respond to connection requests at the VIP by selecting one of the plurality of servers to handle that connection, wherein the selecting is based, at least in part, on a given function of information used to request the connection; and a firewall mechanism constructed and adapted to accept all requests for the VIP address for a particular connection only on the server that has been selected to handle that particular connection. The selected server determines whether it is responsible for the request and may hand it off to another cluster member.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method, operable in a load-balancing cluster comprising:
 (i) a switch having a plurality of ports; and 
 (ii) a cluster of servers comprising a plurality of servers connected to at least some of the plurality of ports of the switch, each of said servers being addressable by the same virtual Internet Protocol (VIP) address, the method comprising: 
 (A) receiving a connection request at said switch to connect a client computer to a server associated with said VIP address; 
 (B) said switch providing said connection request to each server connected to said switch; 
 (C) at least some of said plurality of servers determining which server of said 
 plurality of servers is to handle the connection, wherein the determining is based, at least in part, on a given function of information used to request the connection, whereby a first server of the plurality of servers is determined to handle the connection; 
 (D) said first server establishing a Transmission Control Protocol (TCP) connection with the client computer; 
 (E) after establishing the TCP connection with the client computer in (D), and in response to a resource request received by said first server from said client computer for a particular resource, said first server determining whether or not to attempt to handoff the request to a second server of said plurality of servers based on the particular resource availability on the first server; 
 (F) based on said determining in (E), said first server attempting a first handoff to handoff the TCP connection with the client computer to the second server when said first server determines that the particular resource is unavailable on the first server; 
 (G) said second server rejecting said first server's attempted first handoff of the TCP connection based, at least in part, on a popularity value associated with the particular resource; and, 
 (H) said first server obtaining the particular resource from the second server and serving the particular resource to the client in response to the popularity value associated with the particular resource exceeding a threshold popularity value and in response to said second server rejecting said first server's attempted first handoff of the TCP connection. 
 
     
     
       2. The method of  claim 1  further comprising:
 said first server to allow incoming traffic at said first server related to said TCP connection; and 
 other servers of said plurality of servers each updating a corresponding firewall thereof to reject incoming traffic related to said TCP connection between the client computer and the first server. 
 
     
     
       3. The method of  claim 1  wherein said resource request for the particular resource comprises an HTTP request from said client computer for said particular resource. 
     
     
       4. The method of  claim 3  wherein said information associated with the resource request for the particular resource comprises at least some information from at least one HTTP header associated with the resource request. 
     
     
       5. The method of  claim 1  wherein said determining whether or not to attempt to handoff the request to the second server in (E) is based, at least in part, on whether said second server had already handled a previous request from said client computer for said particular resource. 
     
     
       6. The method of  claim 1  wherein said determining whether or not to attempt to handoff the request to the second server in (E) is based, at least in part, on whether said second server had previously served said particular resource. 
     
     
       7. The method of  claim 1  wherein said determining whether or not to attempt to handoff the request to the second server in (E) is based, at least in part, on whether said second server had previously served any resource to the client computer. 
     
     
       8. The method of  claim 1  wherein said determining in (C) is based at least in part on a second given function of said at least some information associated with the resource request for the particular resource. 
     
     
       9. The method of  claim 8  wherein said second given function comprises a hash function. 
     
     
       10. A load-balancing cluster comprising:
 (i) a physical switch having a plurality of ports; and 
 (ii) a cluster of servers comprising a plurality of servers connected to at least some of the plurality of ports of the switch, each of said servers being addressable by the same virtual Internet Protocol (VIP) address and at least one of the servers comprising a computing device, wherein, 
 said switch is operable to: 
 receive a connection request at said switch to connect a client computer to a server associated with said VIP address; and 
 provide said connection request to each server connected to said switch; 
 at least some of said plurality of servers are operable to determine which server of said plurality of servers is to handle the connection, wherein the determining is based, at least in part, on a given function of information used to request the connection, whereby a first server of the plurality of servers is determined to handle the connection; 
 said first server is operable to: 
 establish a Transmission Control Protocol (TCP) connection with the client computer; 
 after establishing the TCP connection with the client computer, and in response to a resource request received by said first server from said client computer for a particular resource, determine whether or not to attempt to handoff the request to a second server of said plurality of servers based on the particular resource availability on the first server; 
 attempt a first handoff to handoff the TCP connection with the client computer to the second server when said first server determines that the particular resource is unavailable on the first server; 
 said second server operable to: 
 reject said first server's attempted first handoff of the TCP connection based, at least in part, on a popularity value associated with the particular resource; and 
 said first server operable to obtain the particular resource from the second server to serve the particular resource to the client in response to the popularity value associated with the particular resource exceeding a threshold popularity value and in response to said second server rejecting said first server's attempted first handoff of the TCP connection. 
 
     
     
       11. The load-balancing cluster of  claim 10  wherein,
 said first server is further operable to update a firewall of said first server to allow incoming traffic at said first server related to said TCP connection; and 
 other servers of said plurality of servers are operable to update a corresponding firewall thereof to reject incoming traffic related to said TCP connection between the client computer and the first server. 
 
     
     
       12. The load-balancing cluster of  claim 10  wherein said resource request for the particular resource comprises an HTTP request from said client computer for said particular resource. 
     
     
       13. The load-balancing cluster of  claim 12  wherein said information associated with the resource request for the particular resource comprises at least some information from at least one HTTP header associated with the resource request. 
     
     
       14. The load-balancing cluster of  claim 10  wherein said determining by the first server whether or not to attempt to handoff the request to the second server is based, at least in part, on whether said second server had already handled a previous request from said client computer for said particular resource. 
     
     
       15. The load-balancing cluster of  claim 10  wherein said determining by the first server whether or not to attempt to handoff the request to the second server is based, at least in part, on whether said second server had previously served said particular resource. 
     
     
       16. The load-balancing cluster of  claim 10  wherein said determining by the first server whether or not to attempt to handoff the request to the second server is based, at least in part, on whether said second server had previously served any resource to the client computer. 
     
     
       17. The load-balancing cluster of  claim 10  wherein said determining by the at least some of said plurality of servers is based at least in part on a second given function of said at least some information associated with the resource request for the particular resource. 
     
     
       18. The load-balancing cluster of  claim 17  wherein said second given function comprises a hash function. 
     
     
       19. The method of  claim 1 , wherein providing said connection request to each server connected to said switch is based on determining that no entry associated with said VIP address exists in a forwarding database. 
     
     
       20. The method of  claim 19 , wherein the forwarding database maintains a mapping of VIP addresses to physical Ethernet ports on the switch.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.