System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
First Claim
1. A method for balancing a workload for a plurality of processors in a multiple processor computer system designed for processing a plurality of packets from a plurality of connections, the method comprising:
- assigning a packet to a hash bucket determined by performing a predetermined hash function; and
queuing the hash bucket to a processor so that the workloads of all the processors are balanced, wherein the queuing includes applying a queuing model to packets in the hash bucket to prevent packets from a particular connection from utilizing an excessive amount of the processor'"'"'s time;
wherein the hash function relates to a predetermined number of hash buckets, and wherein a plurality of packets from different connections can be assigned to the same hash bucket.
6 Assignments
0 Petitions
Accused Products
Abstract
A method and system is provided for balancing work load for a plurality of computer processors in a multiple processor computer system. In such a system, there are a plurality of packets to be processed. First, a plurality of hash buckets are generated and each packet is assigned to a bucket by performing a predetermined hash function. The different hash buckets are then assigned to the processors based on the workload of all the processors. In connection with processing connections with a timer thread, a plurality of connections are processed with a plurality of timer threads. A plurality of hash buckets are provided, and each connection is mapped to one of the hash buckets. Further, each hash bucket is assigned to a processor timer thread based on a workload thereof.
45 Citations
10 Claims
-
1. A method for balancing a workload for a plurality of processors in a multiple processor computer system designed for processing a plurality of packets from a plurality of connections, the method comprising:
-
assigning a packet to a hash bucket determined by performing a predetermined hash function; and
queuing the hash bucket to a processor so that the workloads of all the processors are balanced, wherein the queuing includes applying a queuing model to packets in the hash bucket to prevent packets from a particular connection from utilizing an excessive amount of the processor'"'"'s time;
wherein the hash function relates to a predetermined number of hash buckets, and wherein a plurality of packets from different connections can be assigned to the same hash bucket. - View Dependent Claims (2, 3, 4)
-
-
5. A method for processing a plurality of connections with a plurality of timer threads by a plurality of computer processors in a multiple processor computer system, the method comprising:
-
providing a plurality of hash buckets related to a hash function;
mapping a connection to one of the hash buckets; and
assigning one or more hash buckets to a processor timer thread based on a workload thereof so that the processor only processes the connection mapped to the assigned hash buckets, wherein a plurality of timer threads for the computer processors thus process a plurality of connections simultaneously. - View Dependent Claims (6, 7)
-
-
8. A computer program for processing a plurality of connections with a plurality of timer threads by a plurality of computer processors in a multiple processor computer system, the program comprising:
-
a plurality of hash buckets related to a predetermined hash function;
means for mapping a connection to one of the hash buckets; and
means for assigning a plurality of hash buckets to a processor timer thread based on a workload thereof so that the processor only processes the connection mapped to the assigned hash buckets, wherein a plurality of timer threads for the computer processors thus process a plurality of connections simultaneously. - View Dependent Claims (9, 10)
-
Specification