Method and apparatus for load balancing of distributed processing units based on performance metrics
First Claim
1. In a data processing network including distributed processing units, a method comprising:
- a processor executing computer instructions to perform the steps of;
obtaining a respective utilization value of each distributed processing unit;
applying a function to the respective utilization value of said each distributed processing unit to obtain a respective weight for said each distributed processing unit; and
using the respective weights for the distributed processing units for distributing work requests to the distributed processing units so that the respective weight for said each distributed processing unit specifies a respective frequency at which the work requests are distributed to said each distributed processing unit;
wherein the respective weight for said each distributed processing unit is programmed into a mapping table, and the function is applied to the respective utilization value of said each distributed processing unit to obtain the respective weight for said each distributed processing unit by indexing the mapping table with the respective utilization value of said each distributed processing unit to obtain the respective weight for said each distributed processing unit.
9 Assignments
0 Petitions
Accused Products
Abstract
Performance parameters are obtained for distributed processing units. The performance parameters include a utilization value, of each distributed processing unit. Respective weights are obtained for the distributed processing units by applying a mapping function to the utilization values. The respective weights are used for weighted round-robin load balancing of work requests upon the distributed processing units. In one implementation, a set of utilization values of the processing units are collected in response to a periodic heartbeat signal, a set of weights are produced from the set of utilization values, a distribution list is produced from the set of weights, and the distribution list is randomized repetitively for re-use during the heartbeat interval.
-
Citations
10 Claims
-
1. In a data processing network including distributed processing units, a method comprising:
-
a processor executing computer instructions to perform the steps of; obtaining a respective utilization value of each distributed processing unit; applying a function to the respective utilization value of said each distributed processing unit to obtain a respective weight for said each distributed processing unit; and using the respective weights for the distributed processing units for distributing work requests to the distributed processing units so that the respective weight for said each distributed processing unit specifies a respective frequency at which the work requests are distributed to said each distributed processing unit; wherein the respective weight for said each distributed processing unit is programmed into a mapping table, and the function is applied to the respective utilization value of said each distributed processing unit to obtain the respective weight for said each distributed processing unit by indexing the mapping table with the respective utilization value of said each distributed processing unit to obtain the respective weight for said each distributed processing unit.
-
-
2. In a data processing network including distributed processing units, a method comprising:
-
a processor executing computer instructions to perform the steps of; obtaining a respective utilization value of each distributed processing unit; applying a function to the respective utilization value of said each distributed processing unit to obtain a respective weight for said each distributed processing unit; and using the respective weights for the distributed processing units for distributing work requests to the distributed processing units so that the respective weight for said each distributed processing unit specifies a respective frequency at which the work requests are distributed to said each distributed processing unit; wherein the respective weights for the distributed processing units are used for distributing work requests to the distributed processing units by creating a distribution list containing entries indicating the distributed processing units, the respective weight for said each distributed processing unit specifying the number of the entries indicating said each distributed processing unit, and by randomizing the distribution list, and accessing the randomized distribution list for distributing the work requests to the distributed processing units as indicated by the entries in the randomized distribution list, and re-randomizing the distribution list for re-use once the end of the distribution list is reached during the distribution of the work requests to the distributed processing units as indicated by the entries in the randomized distribution list.
-
-
3. In a data processing network including a network file server and a plurality of virus checking servers, a method comprising:
-
the network file server obtaining a respective utilization value of each virus checking server, the respective utilization value of said each virus checking server indicating a percentage of saturation of said each virus checking server; the network file server applying a function to the respective utilization value of said each virus checking server to obtain a respective weight for said each virus checking server; and the network file server using the respective weights for the virus checking servers for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers; wherein the respective weight for said each virus checking server is programmed into a mapping table, and the network file server indexes the mapping table with said each respective utilization value to obtain the respective weight for said each virus checking server.
-
-
4. In a data processing network including a network file server and a plurality of virus checking servers, a method comprising:
-
the network file server obtaining a respective utilization value of each virus checking server, the respective utilization value of said each virus checking server indicating a percentage of saturation of said each virus checking server; the network file server applying a function to the respective utilization value of said each virus checking server to obtain a respective weight for said each virus checking server; and the network file server using the respective weights for the virus checking servers for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers; wherein the respective weights for the virus checking servers are used for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers by creating a distribution list containing entries indicating the virus checking servers, the respective weight for said each virus checking server specifying the number of the entries indicating said each virus checking server, and by randomizing the distribution list, and accessing the randomized distribution list for distributing the virus checking requests from the network file server to the virus checking servers as indicated by the entries in the randomized distribution list, and re-randomizing the distribution list for re-use once the end of the distribution list is reached during the distributing of the work requests to the virus checking servers as indicated by the entries in the randomized distribution list.
-
-
5. In a data processing network including a network file server and a plurality of virus checking servers, a method comprising:
-
the network file server obtaining a respective utilization value of each virus checking server, the respective utilization value of said each virus checking server indicating a percentage of saturation of said each virus checking server; the network file server applying a function to the respective utilization value of said each virus checking server to obtain a respective weight for said each virus checking server; and the network file server using the respective weights for the virus checking servers for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers; wherein the respective weights for the virus checking servers are used for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers by creating a distribution list containing entries indicating the virus checking servers, the respective weight for said each virus checking server specifying the number of the entries indicating said each virus checking server, and by randomizing the distribution list, and accessing the randomized distribution list for distributing the virus checking requests from the network file server to the virus checking servers as indicated by the entries in the randomized distribution list, and wherein the network file server obtains the utilization values of the virus checking servers at the start of a heartbeat interval, randomizes the distribution list repetitively during use of the distribution list for load balancing of virus checking requests during the heartbeat interval, obtains new utilization values of the virus checking servers at the start of a following heartbeat interval, and produces a new distribution list from the new utilization values of the virus checking servers for load balancing of virus checking requests during the following heartbeat interval.
-
-
6. A data processing system comprising distributed processing units and a memory storing computer instructions and a processor coupled to the distributed processing units for distributing work requests to the distributed processing units, the computer instructions, when executed by the processor performing the steps of:
-
obtaining a respective utilization value of each distributed processing unit; applying a function to the respective utilization value of said each distributed processing unit to obtain a respective weight for said each distributed processing unit; and using the respective weights for the distributed processing units for distributing work requests to the distributed processing units so that the respective weight for said each distributed processing unit specifies a respective frequency at which the work requests are distributed to said each distributed processing unit; wherein the respective weight for said each distributed processing unit is programmed into a mapping table, and the processor is programmed to apply the function to the respective utilization value of said each distributed processing unit to obtain a respective weight for said each distributed processing unit by indexing the mapping table with said each respective utilization value of said each distributed processing unit to obtain the respective weight for said each distributed processing unit.
-
-
7. A data processing system comprising distributed processing units and a memory storing computer instructions and a processor coupled to the distributed processing units for distributing work requests to the distributed processing units, the computer instructions, when executed by the processor performing the steps of:
-
obtaining a respective utilization value of each distributed processing unit; applying a function to the respective utilization value of said each distributed processing unit to obtain a respective weight for said each distributed processing unit; and using the respective weights for the distributed processing units for distributing work requests to the distributed processing units so that the respective weight for said each distributed processing unit specifies a respective frequency at which the work requests are distributed to said each distributed processing unit; wherein the processor is programmed for using the respective weights for the distributed processing units for distributing work requests to the distributed processing units by creating a distribution list containing entries indicating the distributed processing units, the respective weight for said each distributed processing unit specifying the number of the entries indicating said each distributed processing unit, and by randomizing the distribution list, and accessing the randomized distribution list for distributing the work requests to the distributed processing units as indicated by the entries in the randomized distribution list, and re-randomizing the distribution list for re-use once the end of the distribution list is reached during the distribution of the work requests to the distributed processing units as indicated by the entries in the randomized distribution list.
-
-
8. A data processing system comprising virus checking servers and a network file server coupled to the virus checking servers for distributing virus checking requests to the virus checking servers, the network file server having a memory storing computer instructions and a processor, the computer instructions when executed by the processor, performing the steps of:
-
obtaining a respective utilization value of each virus checking server, the respective utilization value of said each virus checking server indicating a percentage of saturation of said each virus checking server; applying a function to the respective utilization value of said each virus checking server to obtain a respective weight for said each virus checking server; and
using the respective weights for the virus checking servers for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers;wherein the respective weight for said each virus checking server is programmed into a mapping table, and the network file server is programmed for indexing the mapping table with said each respective utilization value of said each virus checking server to obtain the respective weight for said each virus checking server.
-
-
9. A data processing system comprising virus checking servers and a network file server coupled to the virus checking servers for distributing virus checking requests to the virus checking servers, the network file server having a memory storing computer instructions and a processor, the computer instructions when executed by the processor, performing the steps of:
-
obtaining a respective utilization value of each virus checking server, the respective utilization value of said each virus checking server indicating a percentage of saturation of said each virus checking server; applying a function to the respective utilization value of said each virus checking server to obtain a respective weight for said each virus checking server; and using the respective weights for the virus checking servers for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers; and wherein the network file server is programmed for using the respective weights for the virus checking servers for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers by creating a distribution list containing entries indicating the virus checking servers, the respective weight for said each virus checking server specifying the number of the entries indicating said each virus checking server, and by randomizing the distribution list, and accessing the randomized distribution list for distributing the virus checking requests from the network file server to the virus checking servers as indicated by the entries in the randomized distribution list, and re-randomizing the distribution list for re-use once the end of the distribution list is reached during the distributing of the work requests to the virus checking servers as indicated by the entries in the randomized distribution list.
-
-
10. A data processing system comprising virus checking servers and a network file server coupled to the virus checking servers for distributing virus checking requests to the virus checking servers, the network file server having a memory storing computer instructions and a processor, the computer instructions when executed by the processor, performing the steps of:
-
obtaining a respective utilization value of each virus checking server, the respective utilization value of said each virus checking server indicating a percentage of saturation of said each virus checking server; applying a function to the respective utilization value of said each virus checking server to obtain a respective weight for said each virus checking server; and using the respective weights for the virus checking servers for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers; and wherein the network file server is programmed for using the respective weights for the virus checking servers for weighted round-robin load balancing of virus checking requests from the network file server to the virus checking servers by creating a distribution list containing entries indicating the virus checking servers, the respective weight for said each virus checking server specifying the number of the entries indicating said each virus checking server, and by randomizing the distribution list, and accessing the randomized distribution list for distributing the virus checking requests from the network file server to the virus checking servers as indicated by the entries in the randomized distribution list, and wherein the network file server is programmed for collecting utilization statistics from the virus checking servers at the start of a heartbeat interval, for randomizing the distribution list repetitively during use of the distribution list for load balancing of virus checking requests during the heartbeat interval, for collecting a new set of utilization statistics from the virus checking servers at the start of a following heartbeat interval, and for producing a new distribution list from the new set of utilization statistics for load balancing of virus checking requests during the following heartbeat interval.
-
Specification