Maintaining Client Affinity in Network Load Balancing Systems
First Claim
1. A computer-readable medium having computer-executable instructions, which when executed perform steps, comprising:
- receiving a packet at a node from a source; and
determining whether to drop or accept the packet based on data provided in the packet, including determining whether the packet maps to a bucket set comprising at least one bucket owned by the node, anda) if the packet maps to the bucket set,i) dropping the packet when the data indicates an exception, orii) accepting the packet; and
b) if the packet does not map to the bucket set,i) accepting the packet when the data indicates that the node has affinity with a client connection corresponding to the source of the packet, orii) dropping the packet.
2 Assignments
0 Petitions
Accused Products
Abstract
Described is a technology in a network load balancing system (node cluster), by which client affinity is preserved across cluster configuration changes, including for new connections from a previous client. Each node maintains a list of the clients that are to remain (have affinity, or “stickiness”) with that node, including following bucket redistribution resulting from convergence. Each affinity list is communicated during convergence so that other nodes may build an exception list or lists. Via a node'"'"'s exception list, the node that owns a bucket corresponding to a client knows of the affinity with another node and thus drops any packets from that client. Affinity may expire, whereby the node having affinity with that client releases it and notifies the node owning the bucket for that client that the client is no longer to be treated as an exception.
-
Citations
20 Claims
-
1. A computer-readable medium having computer-executable instructions, which when executed perform steps, comprising:
-
receiving a packet at a node from a source; and determining whether to drop or accept the packet based on data provided in the packet, including determining whether the packet maps to a bucket set comprising at least one bucket owned by the node, and a) if the packet maps to the bucket set, i) dropping the packet when the data indicates an exception, or ii) accepting the packet; and b) if the packet does not map to the bucket set, i) accepting the packet when the data indicates that the node has affinity with a client connection corresponding to the source of the packet, or ii) dropping the packet. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
- 8. In a computing environment, a system comprising, a plurality of nodes, each node including logic for selectively accepting only certain packets based on information contained within each packet, including logic that determines whether a packet maps to a bucket owned by that node, and whether the packet corresponds to a client with which the node has affinity or whether the packet corresponds to a client with which the node knows of an exception, and the logic configured to accept the packet when the node has affinity, or when the packet maps to a bucket owned by that node and there is no exception associated with the client corresponding to the packet.
- 12. In a computing environment, a method comprising, performing a convergence process among a plurality of nodes in a network load balanced cluster of nodes, including distributing buckets among nodes and communicating information that allows at least one node to maintain affinity with a client, including for any new connection from the client.
Specification