Patent ID: 8087028
Filing Date: 2011-12-27
Classification: G06F

Abstract:
1. A method, comprising: receiving a request for processor time to process one or more work items associated with the request; identifying a workgroup in which the request should be placed, the workgroup being associated with one or multiple pools and having an importance associated therewith; associating a pool identifier and an importance with the request, the pool identifier being associated with the pool with which the work item belongs, the importance being associated with the workgroup to which the request belongs; computing by a processor a pool bandwidth that is an expected processor utilization for each of the multiple pools based on a current load, said computing including computing the pool bandwidth for the pool to which the request belongs; computing a bandwidth request that is an expected processor utilization for the request and for each other request in the pool to which the request belongs; determining an appropriate queue from a set of multiple queues into which the request should be stored using the pool bandwidth and the request bandwidth; and storing the request in the appropriate queue; wherein computing the pool bandwidth further comprises solving the following equation for X: wherein: CpuConsumption(i, X)= a. If RequestCountlnPool(i)*X is within a range of MinCpu(i) and MaxCpu(i) then CpuConsumption(i, X) is equal to RequestCountlnPool(i)*X; b. If (RequestCountlnPool(i)*X >MaxCpu(i)) then CpuConsumption(i, X) is equal to MaxCpu(i); c. If (RequestCountlnPool(i)*X <MinCpu(i)) then CpuConsumption(i, X) is equal to MinCpu(i); and RequestCountlnPool(i) is a count of requests in pool(i).