IP Library Granted Patent US 12,238,163
Granted Patent B2
US 12,238,163 · App. 18/244,986 · Granted Feb 25, 2025

Latency-based routing and load balancing in a network

Inventors: Katherine E. Patterson (Mount Laurel, NJ); Nicholas C. Beenham (Swedesboro, NJ); Joy Mathew Elamthuruthy (Sicklerville, NJ)
Assignee: Adeia Media Holdings LLC
H04L67/101H04L43/0852H04L67/1001G06F16/27
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 12,238,163
App. No.
18/244,986
Filed
Sep 12, 2023
Granted
Feb 25, 2025
Kind
B2
Art Unit
2446
USPC
709/226
Abstract

Methods and systems for load balancing are described. A network node may replicate content. A lag time may be determined. A data structure may be generated that comprises the lag time.

Claims (65)

1. A method comprising:

receiving a user request for a service on a network connected user device;

identifying, from a plurality of storage nodes associated with the service, a target storage node associated with the user request;

receiving, at a data manager associated with the network connected user device, a data structure comprising:

a first plurality of lag times corresponding to communications between a user network node associated with the network connected user device and the plurality of storage nodes; and

a second plurality of lag times, each lag time of the second plurality of lag times corresponding to a length of time for a first storage node of the plurality of storage nodes to completely replicate content from a second storage node of the plurality of storage nodes;

determining, based on the first plurality of lag times and the second plurality of lag times, a plurality of total lag times between the user network node and the target storage node via a corresponding path comprising one or more of the plurality of storage nodes;

identifying a shortest total lag time from the plurality of total lag times; and

causing, through the user network node, the target storage node to respond to the user request for the service along a path corresponding to the shortest total lag time.

2. The method of claim 1 , further comprising:

receiving, from the data manager, a request for a replication latency topology of the plurality of storage nodes; and

sending, to the data manager, based on the request for the replication latency topology, the data structure comprising the first plurality of lag times and the second plurality of lag times.

3. The method of claim 2 , further comprising:

sending a control signal through the user network node to the plurality of storage nodes; and

receiving, based on the control signal, data indicative of the first plurality of lag times and the second plurality of lag times from the user network node.

4. The method of claim 1 , further comprising:

determining, based on the user request for the service, that the service is instantiated at the user network node; and

sending a control instruction from the network connected user device to have the user network node service the user request for the service.

5. The method of claim 1 , further comprising:

in response to receiving the user request for the service, retrieving a threshold lag time;

comparing the first plurality of lag times to the threshold lag time; and

identifying, based on the comparing, a storage node of the plurality of storage nodes that is associated with a lag time of the first plurality of lag times that satisfies the threshold lag time to service the user request for the service.

6. The method of claim 5 , further comprising:

in response to determining, based on the comparing, that none of the first plurality of lag times satisfies the threshold lag time, comparing the second plurality of lag times to the threshold lag time; and

identifying, based on the comparing, a subset of the plurality of storage nodes that collectively are associated with a lag time of the second plurality of lag times which satisfies the threshold lag time to service the user request for the service.

7. The method of claim 1 , wherein the user request for the service comprises a request for a media content item.

8. The method of claim 1 , wherein the data manager and the user network node are in an application layer, and wherein the plurality of storage nodes are in a data layer.

9. The method of claim 1 , further comprising:

comparing performance data of the plurality of storage nodes to one or more service performance criteria; and

selecting at least one storage node of the plurality of storage nodes based at least in part on determining the at least one storage node fulfills the one or more service performance criteria.

10. The method of claim 9 , further comprising providing, by each one of the plurality of storage nodes, a respective object identifier indicative of performance data for that storage node of the plurality of storage nodes.

11. A system comprising:

a communication port;

a memory storing instructions; and

control circuitry communicably coupled to the memory and the communication port and configured to execute the instructions to:

receive a user request for a service on a network connected user device;

identify, from a plurality of storage nodes associated with the service, a target storage node associated with the user request;

receive, at a data manager associated with the network connected user device, a data structure comprising:

a first plurality of lag times corresponding to communications between a user network node associated with the network connected user device and the plurality of storage nodes; and

a second plurality of lag times, each lag time of the second plurality of lag times corresponding to a length of time for a first storage node of the plurality of storage nodes to completely replicate content from a second storage node of the plurality of storage nodes;

determine, based on the first plurality of lag times and the second plurality of lag times, a plurality of total lag times between the user network node and the target storage node via a corresponding path comprising one or more of the plurality of storage nodes;

identify a shortest total lag time from the plurality of total lag times; and

cause, through the user network node, the target storage node to respond to the user request for the service along a path corresponding to the shortest total lag time.

12. The system of claim 11 , wherein the control circuitry is further configured to:

receive, from the data manager, a request for a replication latency topology of the plurality of storage nodes; and

send, to the data manager, based on the request for the replication latency topology, the data structure comprising the first plurality of lag times and the second plurality of lag times.

13. The system of claim 12 , wherein the control circuitry is further configured to:

send, to the plurality of storage nodes, a control signal through the user network node; and

receive, based on the control signal, data indicative of the first plurality of lag times and the second plurality of lag times from the user network node.

14. The system of claim 11 , wherein the control circuitry is further configured to:

determine, based on the user request for the service, that the service is instantiated at the user network node; and

send a control instruction from the network connected user device to have the user network node service the user request for the service.

15. The system of claim 11 , wherein the control circuitry is further configured to:

in response to receiving the user request for the service, retrieve a threshold lag time;

compare the first plurality of lag times to the threshold lag time; and

identify, based on the comparing, a storage node of the plurality of storage nodes that is associated with a lag time of the first plurality of lag times that satisfies the threshold lag time to service the user request for the service.

16. The system of claim 15 , wherein the control circuitry is further configured to:

in response to determining, based on the comparing, that none of the first plurality of lag times satisfies the threshold lag time, compare the second plurality of lag times to the threshold lag time; and

identify, based on the comparing, a subset of the plurality of storage nodes that collectively are associated with a lag time of the second plurality of lag times which satisfies the threshold lag time to service the user request for the service.

17. The system of claim 11 , wherein the control circuitry configured to receive the user request for the service is further configured to receive a request for a media content item.

18. The system of claim 11 , wherein the control circuitry configured to receive the data structure from the data manager and the plurality of storage nodes is further configured to interface with the data manager and the user network node through an application layer, and wherein the control circuitry configured to receive the data structure from the plurality of storage nodes is further configured to interface with the plurality of storage nodes through a data layer.

19. The system of claim 11 , wherein the control circuitry is further configured to:

compare performance data of the plurality of storage nodes to one or more service performance criteria; and

select at least one storage node of the plurality of storage nodes based at least in part on determining the at least one storage node fulfills the one or more service performance criteria.

20. The system of claim 19 , wherein the control circuitry is further configured to provide, by each one of the plurality of storage nodes, a respective object identifier indicative of performance data for that storage node of the plurality of storage nodes.

Assignments (5)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075303/0980 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO CORPORATION
To: TIVO LLC
Reel/Frame 069083/0240 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO LLC
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069083/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2023
From: PATTERSON, KATHERINE E.; BEENHAM, NICHOLAS C.; ELAMTHURUTHY, JOY MATHEW
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 064885/0965 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2023
From: COMCAST CABLE COMMUNICATIONS, LLC
To: TIVO CORPORATION
Reel/Frame 064886/0005 →