Patent ID: 8108874

Claim:
A computerized method for minimizing variations of waiting times of requests for services handled by a processor of a computing device, comprising: in response to the processor receiving the request for a service and in response to the processor processing the request for the service, where the variation within a history of average waiting times of requests for the service is greater than a threshold, adjusting resources of the processor to minimize variations within waiting times of requests for all the services handled by the processor, by: updating an average waiting time of requests for each service handled by the processor, such that a history of the average waiting times of requests for each service is maintained; determining a variation within the history of the average waiting times of requests for each service; determining a variation of a history of a number of threads allocated by the processor to each service, where the resources of the processor comprises a plurality of threads that are allocated among the services; for each service in which the number of threads has decreased and the average waiting time of requests has increased, adding additional threads to the service in proportion to a decrease of the number of the threads; in response to one or more of the services in which the number of threads has not increased and the average waiting time of requests has increased, modifying allocation of the threads among all the services, by: organizing one or more of the services within a first group of services in which the variation within the history of the average waiting times of requests has at most increased by a degree less than a first degree threshold; organizing one or more other of the services within a second group of services in which the variation within the history of the average waiting times of requests has increased by a degree greater than a second degree threshold; and, repeatingly increasing the numbers of threads for the services within the second group by decreasing the numbers of threads for the services within the first group, until the variation within the history of the average waiting times of requests of each service within the second group has decreased so that no more services are present within the second group.