Network thread scheduling
First Claim
Patent Images
1. A method comprising:
- identifying a common characteristic for each data packet; and
routing data packets from one or more source hosts, which appear in an order in a series of data packets, to respective ones of a plurality of end hosts in a manner to preserve the order of at least some of the packets that are related by a common characteristic, wherein the routing comprises;
applying a first function to the data packets to produce a data packet identifier H for each data packet;
sending each data packet having a given data packet identifier to a same thread in a multi-threaded task; and
using function H Modulo K to identify the same thread for the given data packet, wherein K comprises a number of threads in the multi-threaded task.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system or product that identifies data packets with a common characteristic and routes all data packets having the same characteristic to the same thread of execution or device in a system which processes data packets in parallel.
13 Citations
34 Claims
-
1. A method comprising:
-
identifying a common characteristic for each data packet; and routing data packets from one or more source hosts, which appear in an order in a series of data packets, to respective ones of a plurality of end hosts in a manner to preserve the order of at least some of the packets that are related by a common characteristic, wherein the routing comprises; applying a first function to the data packets to produce a data packet identifier H for each data packet; sending each data packet having a given data packet identifier to a same thread in a multi-threaded task; and using function H Modulo K to identify the same thread for the given data packet, wherein K comprises a number of threads in the multi-threaded task. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
receiving a sequence of data packets; applying a first function to the data packets to generate a data packet identifier H that classifies the packets into groups such that a sequential order of packets in each of the groups is to be maintained; using the classification information in a second function to assign each group to a thread in a multi-threaded task, wherein the second function comprises H Modulo K, and wherein K comprises a number of threads in the multi-threaded task; and routing the data packets classified in a given group to the assigned thread. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a packet identifier for data packets configured to use a first function based on a common characteristic of the data packets to produce a data packet identifier H for each data packet; a router configured to send each data packet having given packet identifier to a common thread for a multi-threaded task, wherein the router is further configured to use function H modulo K to assign each data package to the respective common thread, and wherein K comprises a number of threads in the multi-threaded task; and a processor configured to simultaneously process data packets in at least two threads of the multi-threaded task. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer program product residing on a computer readable medium having instructions stored thereon that, when executed, cause a processor to:
-
identify a common characteristic for each data packet; and route data packets from one or more source hosts, which appear in an order in a series of data packets, to respective ones of a plurality of end hosts in a manner to preserve the order of at least some of the packets that are related by a common characteristic, wherein the routing comprises; applying a first function to the data packets to produce a data packet identifier H for each data packet; sending each data packet having a given data packet identifier to a same thread in a multi-threaded task; and using function H Modulo K to identify the same thread for the given data packet, wherein K comprises a number of threads in the multi-threaded task. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
Specification