IP Library Granted Patent US 11,212,203
Granted Patent B2
US 11,212,203 · App. 16/125,188 · Granted Dec 28, 2021

Distribution of data packets with non-linear delay

Inventors: Luis Stevens (San Jose, CA); Curtis Andrus (San Jose, CA); Vince Schiavone (San Jose, CA)
Assignee: Target Brands, Inc.
H04L43/08G06F16/24554G06F16/24568G06F16/26H04L43/06H04L67/02H04L67/20G06Q50/01
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,212,203
App. No.
16/125,188
Granted
Dec 28, 2021
Kind
B2
Abstract

A computer system receives a data stream with a plurality of packets. In response to receiving the data stream with the plurality of packets, the computer system distributes individual packets of the plurality of packets to the inputs of each of a plurality of processing nodes. Each respective processing node has a local queue storing a respective number of packets to be processed by the respective processing node. Distributing a respective packet of the plurality of packets to the inputs of each of the plurality of processing nodes includes delaying sending the respective packet to each of the plurality of processing nodes by a delay time that is a non-linear function of an average number of packets in the local queues of the respective processing nodes.

Claims (42)

1. A method, comprising:

receiving a data stream with a plurality of packets;

in response to receiving the data stream with the plurality of packets, distributing individual packets of the plurality of packets to inputs of each of a plurality of processing nodes, each of the plurality of processing nodes accepting or rejecting the individual packets distributed to the respective processing node based on definitions associated with the respective processing node and each respective processing node of the plurality of processing nodes having a local input queue storing a respective number of packets distributed thereto,

wherein distributing a respective packet of the plurality of packets to the inputs of each of the plurality of processing nodes includes delaying sending the respective packet to each of the plurality of processing nodes by a delay time that is a non-linear function of an average number of packets in the local input queues of the respective processing nodes.

2. The method of claim 1 , wherein distributing the respective packet of the plurality of packets to the inputs of each of the plurality of processing nodes includes:

duplicating the respective packet; and

distributing a duplicate of the respective packet to the inputs of each of the plurality of processing nodes.

3. The method of claim 1 , wherein the non-linear function of the average number of packets in the local input queues is a power-function of the average number of packets in the local input queues.

4. The method of claim 3 , wherein the power-function of the average number of packets in the local input queues includes a power of the average number of packets in the local input queue multiplied by a proportionality constant, wherein the proportionality constant is less than one.

5. The method of claim 1 , wherein the non-linear function of the average number of packets in the local input queues has a value of zero when the average number of packets in the local input queues has a value of zero.

6. The method of claim 1 , wherein delaying sending the respective packet to each of the plurality of processing nodes by the delay time comprises limiting a maximum rate that the individual packets are distributed to the inputs of each of the plurality of processing nodes.

7. The method of claim 1 , further comprising storing, in a global queue, the individual packets of the plurality of packets,

wherein distributing individual packets of the plurality of packets to the inputs of each of the plurality of processing nodes includes distributing the individual packets from the global queue to the local input queues of the respective processing nodes.

8. A computer system, comprising:

one or more processors;

memory storing one or more programs for execution by the one or more processors, the one or more programs comprising instructions for:

receiving a data stream with a plurality of packets;

in response to receiving the data stream with the plurality of packets, distributing individual packets of the plurality of packets to inputs of each of a plurality of processing nodes, each of the plurality of processing nodes accepting or rejecting the individual packets distributed to the respective processing node based on definitions associated with the respective processing node and each respective processing node of the plurality of processing nodes having a local input queue storing a respective number of packets,

wherein distributing a respective packet of the plurality of packets to the inputs of each of the plurality of processing nodes includes delaying sending the respective packet to each of the plurality of processing nodes by a delay time that is a non-linear function of an average number of packets in the local input queues of the respective processing nodes.

9. The computer system of claim 8 , wherein distributing the respective packet of the plurality of packets to the inputs of each of the plurality of processing nodes includes:

duplicating the respective packet; and

distributing a duplicate of the respective packet to the inputs of each of the plurality of processing nodes.

10. The computer system of claim 8 , wherein the non-linear function of the average number of packets in the local input queues is a power-function of the average number of packets in the local input queues.

11. The computer system of claim 10 , wherein the power-function of the average number of packets in the local input queues includes a power of the average number of packets in the local input queue multiplied by a proportionality constant, wherein the proportionality constant is less than one.

12. The computer system of claim 8 , wherein the non-linear function of the average number of packets in the local input queues has a value of zero when the average number of packets in the local input queues has a value of zero.

13. The computer system of claim 8 , wherein delaying sending the respective packet to each of the plurality of processing nodes by the delay time comprises limiting a maximum rate that the individual packets are distributed to the inputs of each of the plurality of processing nodes.

14. The computer system of claim 8 , wherein the one or more programs comprises instructions for:

storing, in a global queue, the individual packets of the plurality of packets,

wherein distributing individual packets of the plurality of packets to the inputs of each of the plurality of processing nodes includes distributing the individual packets from the global queue to the local input queues of the respective processing nodes.

15. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer system, the one or more programs comprising instructions for:

receiving a data stream with a plurality of packets;

in response to receiving the data stream with the plurality of packets, distributing individual packets of the plurality of packets to inputs of each of a plurality of processing nodes, each of the plurality of processing nodes accepting or rejecting the individual packets distributed to the respective processing node based on definitions associated with the respective processing node and each respective processing node of the plurality of processing nodes having a local input queue storing a respective number of packets,

wherein distributing a respective packet of the plurality of packets to the inputs of each of the plurality of processing nodes includes delaying sending the respective packet to each of the plurality of processing nodes by a delay time that is a non-linear function of an average number of packets in the local input queues of the respective processing nodes.

16. The non-transitory computer readable storage medium of claim 15 , wherein distributing the respective packet of the plurality of packets to the inputs of each of the plurality of processing nodes includes:

duplicating the respective packet; and

distributing a duplicate of the respective packet to the inputs of each of the plurality of processing nodes.

17. The non-transitory computer readable storage medium of claim 15 , wherein the non-linear function of the average number of packets in the local input queues is a power-function of the average number of packets in the local input queues.

18. The non-transitory computer readable storage medium of claim 15 , wherein the non-linear function of the average number of packets in the local input queues has a value of zero when the average number of packets in the local input queues has a value of zero.

19. The non-transitory computer readable storage medium of claim 15 , wherein delaying sending the respective packet to each of the plurality of processing nodes by the delay time comprises limiting a maximum rate that the individual packets are distributed to the inputs of each of the plurality of processing nodes.

20. The non-transitory computer readable storage medium of claim 15 , wherein the one or more programs comprises instructions for:

storing, in a global queue, the individual packets of the plurality of packets,

wherein distributing individual packets of the plurality of packets to the inputs of each of the plurality of processing nodes includes distributing the individual packets from the global queue to the local input queues of the respective processing nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2021
From: UDA, LLC; AKUDA LABS, LLC
To: TARGET BRANDS, INC.
Reel/Frame 055166/0843 →
Continuity (4)
Continuation 15464261 · Mar 20, 2017
Continuation 14214490 · Mar 14, 2014
Provisional Application 61802353 · Mar 15, 2013
Related Publication 20190007287A1 · Jan 3, 2019