DISTRIBUTED LOAD BALANCER
First Claim
1. A distributed load balancer system, comprising:
- a plurality of load balancer nodes; and
a plurality of server nodes each comprising a server and a load balancer module;
wherein the plurality of load balancer nodes is configured to distribute packet flows from one or more clients among the plurality of server nodes, wherein, to distribute the packet flows among the plurality of server nodes, the plurality of load balancer nodes is configured to;
select server nodes from among the plurality of server nodes to receive connection requests for the packet flows from the clients; and
send the connection requests to the selected server nodes;
wherein the load balancer module on each server node is configured to;
receive a connection request for a packet flow from one of the plurality of load balancer nodes;
determine if the connection is to be accepted by the server on the server node;
if the server cannot accept the connection, reject the connection request; and
if the server can accept the connection, cooperate with the plurality of load balancer nodes to establish a connection for the packet flow between the respective client and the respective server.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed load balancer in which a router receives packets from at least one client and routes packet flows to multiple load balancer (LB) nodes according to a per-flow hashed multipath routing technique. For a given packet flow, the LB nodes randomly select a server node as a target for the packet flow from among multiple server nodes and send a connection request to the server node. A load balancer module on the server node makes the decision on whether to accept or reject the connection based on one or more metrics indicating a respective server'"'"'s current load. If the module accepts the connection request, a connection is established between the server and the client. Otherwise, the load balancer nodes may select another server node and try again. The connections established between clients and servers pass through the load balancer nodes, but are not terminated at the load balancer nodes.
239 Citations
20 Claims
-
1. A distributed load balancer system, comprising:
-
a plurality of load balancer nodes; and a plurality of server nodes each comprising a server and a load balancer module; wherein the plurality of load balancer nodes is configured to distribute packet flows from one or more clients among the plurality of server nodes, wherein, to distribute the packet flows among the plurality of server nodes, the plurality of load balancer nodes is configured to; select server nodes from among the plurality of server nodes to receive connection requests for the packet flows from the clients; and send the connection requests to the selected server nodes; wherein the load balancer module on each server node is configured to; receive a connection request for a packet flow from one of the plurality of load balancer nodes; determine if the connection is to be accepted by the server on the server node; if the server cannot accept the connection, reject the connection request; and if the server can accept the connection, cooperate with the plurality of load balancer nodes to establish a connection for the packet flow between the respective client and the respective server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
performing, by one or more of a plurality of load balancer nodes; receiving a packet in a packet flow for a client; and sending a connection request for the packet flow to a server node selected from among a plurality of server nodes; performing, by the selected server node; determining if a server on the server node can or cannot accept the connection; rejecting the connection request upon determining that the server cannot accept the connection; and accepting the connection request upon determining that the server can accept the connection. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-accessible storage medium storing program instructions computer-executable to implement a load balancer module on each of a plurality of server nodes, each load balancer module operable to:
-
receive, from one of a plurality of load balancer nodes, a connection request for a packet flow from a client; determine if a server on the server node can or cannot accept the connection; reject the connection request upon determining that the server cannot accept the connection; and communicate with the load balancer node and with the server to establish a connection between the client and the server for the packet flow upon determining that the server can accept the connection. - View Dependent Claims (17, 18, 19, 20)
-
Specification