Maintaining client affinity in network load balancing systems
AssigneeMicrosoft Corporation
InventorsVladimir Petter, Siddhartha Sen, Andrea D'Amato, Jimmy C. Yu
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsVladimir Petter, Siddhartha Sen, Andrea D'Amato, Jimmy C. Yu
Estimating the term…
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.
A computer-readable storage medium comprising memory, optical recording media, magnetic recording media, or a combination thereof, the computer-readable storage medium storing computer-executable instructions, which when executed by a node perform steps, the node participating in a plurality of nodes that each receive same incoming packets and that each maintain a corresponding client affinity list and a corresponding set of currently assigned buckets, a client affinity list of a node identifying clients associated with that node, wherein any given client is allowed to be in only one affinity list at any given time, and wherein periodic load-rebalancings cause some buckets to be reassigned between nodes, the steps comprising:
In a computing environment, a system comprising, a plurality of nodes, each node including logic executed by memory and a processor, the logic selectively accepting only certain packets based on information contained within each packet, wherein buckets are reassigned among the nodes when there is a load-rebalancing of the plurality of nodes, the system including logic that determines whether a packet maps to a bucket currently owned by that node, and determines 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 as an exception, and the logic configured to accept the packet when the node has affinity and the packet does not map to a bucket currently owned by that node, and the logic configured to accept the packet when the packet maps to a bucket currently owned by that node and it has been decided that there is no exception associated with the client corresponding to the packet.
A method implemented by each node in a plurality of load-balancing nodes, each node comprising a processor and memory that perform the method, the method performed by any given node comprising:
Dependencies are inferred from the claim text.