ASYMMETRIC PACKET FLOW IN A DISTRIBUTED LOAD BALANCER
First Claim
1. A distributed load balancer system, comprising:
- a plurality of load balancer nodes, wherein at least two of the plurality of load balancer nodes are configured as ingress servers, and wherein at least two of the plurality of load balancer nodes are configured as flow tracker nodes;
a plurality of server nodes; and
a router configured to distribute packet flows from one or more clients to the ingress servers according to a hashed multipath routing technique;
wherein each ingress server is configured to;
receive a packet in a packet flow for a client from the router;
determine that the ingress server does not have a mapping for the packet flow to the plurality of server nodes;
determine at least one flow tracker node for the packet flow according to a consistent hash function applied to source and destination address information of the packet;
obtain a mapping of a connection to a particular one of the plurality of server nodes for the packet flow from the at least one flow tracker node; and
send one or more packets of the packet flow to the particular server node.
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 ingress servers. For unknown packet flows, an ingress server cooperates with primary and secondary flow trackers to establish connections to server nodes. For known packet flows, the ingress server sends the packets to target server nodes. The server nodes randomly select egress servers for outgoing packets of the packet flows. The ingress servers, flow trackers, and egress servers are implemented by multiple load balancer nodes in a load balancer node layer. The ingress and egress servers for a given packet flow may be on different load balancer nodes. The load balancer nodes may use a consistent hash function to compute a consistent hash ring for the nodes according to packet flow client/public endpoint pairs so that nodes associated with given packet flows can be located.
55 Citations
20 Claims
-
1. A distributed load balancer system, comprising:
-
a plurality of load balancer nodes, wherein at least two of the plurality of load balancer nodes are configured as ingress servers, and wherein at least two of the plurality of load balancer nodes are configured as flow tracker nodes; a plurality of server nodes; and a router configured to distribute packet flows from one or more clients to the ingress servers according to a hashed multipath routing technique; wherein each ingress server is configured to; receive a packet in a packet flow for a client from the router; determine that the ingress server does not have a mapping for the packet flow to the plurality of server nodes; determine at least one flow tracker node for the packet flow according to a consistent hash function applied to source and destination address information of the packet; obtain a mapping of a connection to a particular one of the plurality of server nodes for the packet flow from the at least one flow tracker node; and send one or more packets of the packet flow to the particular server node. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
performing, by an ingress server on one of a plurality of load balancer nodes; receiving a packet in a packet flow for a client, wherein the packet is received from a router that distributes packet flows from one or more clients to the plurality of load balancer nodes according to a consistent hash function; determining a load balancer node that serves as a flow tracker node for the packet flow according to a consistent hash function applied to source and destination address information of the packet; obtaining a mapping of a connection to one of a plurality of server nodes for the packet flow from the flow tracker node for the packet flow; and sending one or more packets of the packet flow to the server node indicated by the mapping. - 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 an ingress server and a flow tracker on each of a plurality of load balancer nodes, each ingress server configured to:
-
receive a packet in a packet flow for a client, wherein the packet is received from a router that distributes packet flows from one or more clients to the plurality of load balancer nodes according to a consistent hash function; determine one of the plurality of load balancer nodes that serves as a flow tracker node for the packet flow according to a consistent hash function applied to source and destination address information of the packet; obtain a mapping of a connection to one of a plurality of server nodes for the packet flow from the flow tracker node for the packet flow; and send one or more packets of the packet flow to the server node indicated by the mapping. - View Dependent Claims (17, 18, 19, 20)
-
Specification