IP Library › Granted Patent US 11,418,581
Granted Patent B2
US 11,418,581 · App. 16/263,959 · Granted Aug 16, 2022

Load balancer shared session cache

Inventors: Keith Wood (Black Diamond, WA); Boris Maisuradze (Kirkland, WA); Aditya Mehta (Seattle, WA)
Assignee: T-Mobile USA, Inc.
H04L67/1004G06F9/45558G06F12/084H04L67/1027H04L67/2852H04L67/42G06F2009/4557G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,418,581
App. No.
16/263,959
Granted
Aug 16, 2022
Kind
B2
Abstract

A shared session cache can be accessible by multiple load balancers, and can indicate whether client devices are associated with specific backend servers of a server pool. When a client device connects to a load balancer, the load balancer can use the shared session cache to determine if the client device is already associated with a specific backend server. If so, the load balancer can connect the client device to that specific backend server so that it can continue an existing session with the specific backend server. If not, the load balancer can select a new backend server for the client device, connect the client device to the newly selected backend server, and create an entry in the shared session cache indicating that the client device is associated with the newly selected backend server.

Claims (57)

1. A method comprising:

receiving, by a load balancer, a connection request from a client device;

determining, by the load balancer, that a shared session cache accessible by the load balancer and one or more other load balancers includes an entry indicating that the client device is associated with a specific backend server of a server pool containing a plurality of backend servers, the load balancer and the one or more other load balancers being capable of connecting the client device with at least the specific backend server; and

connecting, by the load balancer and based on the entry, the client device to the specific backend server;

receiving, by another load balancer of the one or more other load balancers, another connection request from the client device;

determining, by the other load balancer, that the shared session cache accessible by the load balancer and the one or more other load balancers includes the entry indicating that the client device is associated with the specific backend server of the server pool containing the plurality of backend servers;

connecting, by the other load balancer and based on the entry, the client device to the specific backend server; and

adding a new backend server to the server pool,

wherein information about the new backend server is provided to the load balancers within a threshold period of time, an administrator utilizing a user interface can enable or disenable the shared session cache associated with one or more VIPs (Virtual Internet Protocol Addresses), the disabling of the shared session cache and causes the load balancers associated with a particular VIP to utilize their own local cache to connect client devices to the backend servers, and the entry includes at least a source identifier of the client device, a destination identifier of the specific backend server, and a timer.

2. The method of claim 1 , wherein the entry was created in the shared session cache by one of the one or more other load balancers.

3. The method of claim 1 , further comprising updating, by the load balancer, the entry in the shared session cache.

4. The method of claim 3 , wherein the updating comprises resetting the timer associated with the entry.

5. The method of claim 1 , wherein the load balancer creates the entry in the shared session cache in part by setting the timer associated with the entry.

6. The method of claim 1 , further comprising creating, by the load balancer, a local entry in a local cache stored at the load balancer that corresponds to the entry.

7. The method of claim 1 , wherein the load balancer and the one or more other load balancers are identified with unique Virtual Internet Protocol addresses.

8. The method of claim 1 , wherein the load balancer is a virtual load balancer instance hosted at a network element.

9. The method of claim 1 , wherein the source identifier indicates a first Internet Protocol address of the client device and the destination identifier indicates a second Internet Protocol address of the specific backend server.

10. The method of claim 9 , wherein the entry further contains at least one of a forward destination identifier that identifies the load balancer to the client device and a reverse source identifier by which the specific backend server can identify the client device.

11. A method comprising:

receiving, by a load balancer, a connection request from a client device;

determining, by the load balancer, that a shared session cache accessible by the load balancer and one or more other load balancers does not include an entry indicating that the client device is associated with a backend server of a server pool containing a plurality of backend servers;

selecting, by the load balancer, a specific backend server from the server pool for the client device, the load balancer and the one or more other load balancers being capable of connecting the client device with at least the specific backend server;

connecting, by the load balancer, the client device to the specific backend server;

creating, by the load balancer, a new entry in the shared session cache indicating that the client device is associated with the specific backend server, the entry including at least a source identifier of the client device, a device identifier of the specific backend server, and a timer;

receiving, by another load balancer of the one or more other load balancers, another connection request from the client device;

determining, by the other load balancer, that the shared session cache accessible by the load balancer and the one or more other load balancers includes the entry indicating that the client device is associated with the specific backend server;

connecting, by the other load balancer and based on the entry, the client device to the specific backend server; and

adding a new backend server to the server pool,

wherein information about the new backend server is provided to the load balancers within a threshold period of time, an administrator utilizing a user interface can enable or disenable the shared session cache associated with one or more VIPs (Virtual Internet Protocol Addresses), the disabling of the shared session cache and causes the load balancers associated with a particular VIP to utilize their own local cache to connect client devices to the backend servers.

12. The method of claim 11 , wherein the load balancer creates the new entry in the shared session cache in part by setting the timer associated with the new entry.

13. The method of claim 11 , further comprising creating, by the load balancer, a local entry in a local cache stored at the load balancer that corresponds to the new entry.

14. The method of claim 11 , wherein the load balancer and the one or more other load balancers are identified with unique Virtual Internet Protocol addresses.

15. The method of claim 11 , wherein the load balancer is a virtual load balancer instance hosted at a network element.

16. A system, comprising:

one or more processors; and

memory storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, by a load balancer, a connection request from a client device;

determining, by the load balancer that a shared session cache accessible by the load balancer and one or more other load balancers includes an entry indicating that the client device is associated with a specific backend server of a server pool containing a plurality of backend servers, the load balancer and the one or more other load balancers being capable of connecting the client with at least the specific backend server; and

connecting, by the load balancer and based on the entry, the client device to the specific backend server;

receiving, by another load balancer of the one or more other load balancers, another connection request from the client device;

determining, by the other load balancer, that the shared session cache accessible by the load balancer and one or more other load balancers includes the entry indicating that the client device is associated with the specific backend server of the server pool containing the plurality of the backend servers; and

connecting, by the other load balancer and based on the entry, the client device to the specific backend server,

wherein the entry includes at least a source identifier of the client device, a destination identifier of the specific backend server, and a timer.

17. The system of claim 16 , wherein the entry was created in the shared session cache by one of the one or more other load balancers.

18. A system, comprising:

one or more processors; and

memory storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, by a load balancer, a connection request from a client device;

determining, by the load balancer, that a shared session cache accessible by the load balancer and one or more other load balancers includes an entry indicating that the client device is associated with a specific backend server of a server pool containing a plurality of backend servers, the load balancer and the one or more other load balancers being capable of connecting the client device with at least the specific backend server;

connecting, by the load balancer and based on the entry, the client device to the specific backend server;

receiving, by another load balancer of the one or more other load balancers, another connection request from the client device;

determining, by the other load balancer, that the shared session cache accessible by the load balancer and one or more other load balancers includes the entry indicating that the client device is associated with the specific backend server of the server pool containing the plurality of backend servers;

connecting, by the other load balancer and based on the entry, the client device to the specific backend server; and

adding a new backend server to the server pool,

wherein information about the new backend server is provided to the load balancers within a threshold period of time, an administrator utilizing a user interface can enable or disenable the shared session cache associated with one or more VIPs (Virtual Internet Protocol Addresses), the disabling of the shared session cache and causes the load balancers associated with a particular VIP to utilize their own local cache to connect client devices to the backend servers, and the entry includes at least a source identifier of the client device, a destination identifier of the specific backend server, and a timer.

19. The system of claim 18 , wherein the updating comprises resetting a timer associated with the entry.

20. The system of claim 16 , wherein the operations further comprise creating a local entry in a local cache stored at the memory that corresponds to the entry.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2022
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: IBSV LLC; LAYER3 TV, LLC; PUSHSPRING, LLC; T-MOBILE CENTRAL LLC; T-MOBILE USA, INC.; ASSURANCE WIRELESS USA, L.P.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; SPRINTCOM LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM LLC
Reel/Frame 062595/0001 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: T-MOBILE USA, INC.; ISBV LLC; T-MOBILE CENTRAL LLC; LAYER3 TV, INC.; PUSHSPRING, INC.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; CLEARWIRE LEGACY LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM L.P.; ASSURANCE WIRELESS USA, L.P.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS
Reel/Frame 053182/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: WOOD, KEITH; MAISURADZE, BORIS; MEHTA, ADITYA
To: T-MOBILE USA, INC.
Reel/Frame 048202/0368 →
Continuity (1)
Related Publication 20200252449A1 · Aug 6, 2020