Systems and methods for scalable and resilient load balancing

US9935880B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9935880-B2
Application numberUS-201214370289-A
CountryUS
Kind codeB2
Filing dateJan 12, 2012
Priority dateJan 12, 2012
Publication dateApr 3, 2018
Grant dateApr 3, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for providing resilient load balancing in a system comprising a first processing unit, a second processing unit, a first active load balancer and a second active load balancer is disclosed. A first set of packet flows may be mapped to the first active load balancer and a second set of packet flows may be mapped to the second active load balancer. The first set of packet flows may include a first packet flow. In some embodiments, the method includes: (a) storing, by the first processing unit, a set of state information associated with the first active load balancer, the set of state information comprising state information associated with a first session associated with the first packet flow; (b) receiving, by the first processing unit, information indicating that the first active load balancer is inoperable; and (c) in response to receiving the information indicating that the first active load balancer is inoperable, transmitting, from the first processing unit to the second active load balancer, the state information associated with the first session.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for providing resilient load balancing in a system comprising a set of processing units comprising at least a first processing unit and a second processing unit, and a set of active load balancers comprising at least a first active load balancer and a second active load balancer, the method comprising the steps of: mapping to the first active load balancer a first set of packet flows comprising at least a first packet flow; the first active load balancer receiving a first packet associated with a first session; determining that the first session needs to be assigned to one of the processing units included in the set of processing units; in response to determining that the first session needs to be assigned to one of the processing units included in the set of processing units, the first active load balancer performing a load balancing step for balancing session traffic across the set of processing units, said load balancing step comprising the first active load balancer selecting from among the set of processing units a target processing unit for receiving packets belonging to the first session, the first processing unit being selected as the target processing unit; forwarding, by the first active load balancer, packets associated with the first session to the first processing unit; storing, by the first processing unit, a set of state information associated with the first active load balancer, the set of state information associated with the first active load balancer comprising state information associated with the first session, wherein the state information associated with the first session comprises a session identifier identifying the first session; the first processing unit receiving information indicating that the first active load balancer is inoperable; in response to receiving the information indicating that the first active load balancer is inoperable, the first processing unit transmitting to the second active load balancer the state information associated with the first session, wherein the second active load balancer is also configured to balance session traffic across said set of processing units. 2. The method of claim 1 , wherein the system further comprises a third active load balancer, the first set of packet flows further comprises a second packet flow, the set of state information further comprises state information associated with a second session associated with the second packet flow, and the method further comprises transmitting, from the first processing unit to the third active load balancer, state information associated with the second session in response to receiving the information indicating that the first active load balancer is inoperable. 3. The method of claim 2 , further comprising: mapping the first set of packet flows to the first active load balancer, wherein the mapping the first set of packet flows to the first active load balancer comprises: mapping the first packet flow to a first packet flow class, mapping the second packet flow to a second packet flow class, mapping the first packet flow class to the first active load balancer, and mapping the second packet flow class to the first active load balancer; and in response to a determination that the first active load balancer is inoperable: remapping the first packet flow class to the second active load balancer and remapping the second packet flow class to the third load balancer. 4. The method of claim 2 , further comprising: after performing step (c): generating, by the first processing unit, a packet corresponding to a particular packet flow; determining the packet flow to which the generated packet corresponds; sending the packet to the second active load balancer in response to determining that the generated packet corresponds to the first packet flow; and sending the packet to the third load balancer in response to determining that the generated packet corresponds to the second packet flow. 5. The method of claim 1 , wherein the system further comprises: a) a load balancer monitor that monitors the first active load balancer and b) a load balancer selector, and the method further comprises the load balancer selector balancing session traffic across the set of active load balancers, the step of balancing session traffic across the set of active load balancers comprising: assigning a packet flow class value (PFCV) to the first active load balancer; receiving at the load balancer selector the first packet; the load balancer selector determining a PFCV associated with the first packet; the load balancer determining an active load balancer to which the determined PFCV has been assigned; as a result of the load balancer selector determining that the determined PFCV has been assigned to the first active load balancer, the load balancer selector forwarding the first packet to the first active load balancer. 6. The method of claim 1 , further comprising: processing, by a server application running on the first processing unit, application data contained in a packet associated with the first session. 7. The method of claim 1 , wherein the state information associated with the first session comprises a session identifier that comprises a network address obtained from a source field of a network layer header included in a network packet and a transport layer port number obtained from a source field of transport layer header included in the network packet, and the method further comprises: the first active load balancer receiving a packet, the first active load balancer determining a session identifier based on address information included in the header of the packet, the first active load balancer selecting a processing unit based on the determined session identifier, and the first active load balancer forwarding at least a portion of the packet to the selected processing unit, wherein the selected processing unit is the first processing unit and the session identifier determined by the first active load balancer is the same as the session identifier included in the state information associated with the first session. 8. The method of claim 7 , wherein the state information associated with the first session further comprises one or more of: a pair of TCP sequence numbers for use in splicing together two separate TCP connections and a sticky connection time value. 9. The method of claim 7 , wherein the method further comprises, prior to step (a), receiving, at the first processing unit, a connection data update message transmitted from the first active load balancer, the connection update message comprises the session identifier, and the storing step is performed in response to receiving the connection update message. 10. The method of claim 1 , further comprising: prior to the first processing unit storing the state information associated with the first session, the first processing unit receiving from the first active load balancer a message comprising said session identifier; the first processing unit, after receiving the message, determining a packet flow class value based on the session identifier; and the first processing unit storing the session identifier in association with the determined packet flow class value. 11. The method of claim 10 , wherein receiving the information indicating that the first active load balancer is inoperable comprises the first processing unit receiving a message indicating that the packet flow class value as been reassigned to the second active load balancer. 12. The method of claim 1 , wherein the system further comprises: a) a load balancer monitor that monito

Assignees

Inventors

Classifications

  • H04L67/10Primary

    in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • H04L47/125Primary

    by balancing the load, e.g. traffic engineering · CPC title

  • Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level · CPC title

  • for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9935880B2 cover?
A method for providing resilient load balancing in a system comprising a first processing unit, a second processing unit, a first active load balancer and a second active load balancer is disclosed. A first set of packet flows may be mapped to the first active load balancer and a second set of packet flows may be mapped to the second active load balancer. The first set of packet flows may inclu…
Who is the assignee on this patent?
Hammam Tarik, Beste Fredrick, Franzen Anders, and 1 more
What technology area does this patent fall under?
Primary CPC classification H04L67/10. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Apr 03 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).