Method and apparatus for controlling the number of servers in a multisystem cluster
First Claim
1. In a cluster of information handling systems in which incoming work requests belonging to a service class are placed in a cluster-wide queue for processing by one or more servers on the systems of the cluster, a method of controlling the number of such servers, comprising the steps of:
- determining whether one or more servers should be added to the service class;
determining a target system in the cluster on which the servers should be added if it is determined that one or more servers should be added to the service class; and
adding the servers on the target system.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for controlling the number of servers in a multisystem cluster. Incoming work requests are organized into service classes, each of which has a queue serviced by servers across the cluster. Each service class has defined for it a local performance index for each particular system of the cluster and a multisystem performance index for the cluster as a whole. Each system selects one service class as a donor class for donating system resources and another service class as a receiver class for receiving system resources, based upon how well the service classes are meeting their goals. Each system then determines the resource bottleneck causing the receiver class to miss its goals. If the resource bottleneck is the number of servers, each system determines whether and how many servers should be added to the receiver class, based upon whether the positive effect of adding such servers on the performance index for the receiver class outweighs the negative effect of adding such servers on the performance measure for the donor class. If a system determines that servers should be added to the receiver class, it then determines the system in the cluster to which the servers should be added, based upon the effect on other work on that system. To make this latter determination, each system first determines whether another system has enough idle capacity and, if so, lets that system add servers. If no system has sufficient idle capacity, each system then determines whether the local donor class will miss its goals if servers are started locally. It not, the servers are started on the local system. Otherwise, each system determines where the donor class will be hurt the least and acts accordingly. To ensure the availability of a server capable of processing each of the work requests in the queue, each system determines whether there is a work request in the queue with an affinity only to a subset of the cluster that does not have servers for the queue and, if so, starts a server for the queue on a system in the subset to which the work request has an affinity.
195 Citations
17 Claims
-
1. In a cluster of information handling systems in which incoming work requests belonging to a service class are placed in a cluster-wide queue for processing by one or more servers on the systems of the cluster, a method of controlling the number of such servers, comprising the steps of:
-
determining whether one or more servers should be added to the service class;
determining a target system in the cluster on which the servers should be added if it is determined that one or more servers should be added to the service class; and
adding the servers on the target system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
determining whether any system in the cluster has sufficient idle capacity to add the one or more additional servers; and
if any system in the cluster has sufficient idle capacity to add the one or more additional servers, selecting one such system as a target system.
-
-
3. The method of claim 2 in which the step of determining a target system in the cluster on which the servers should be added comprises the additional steps of:
-
if no system in the cluster has sufficient idle capacity to add the one or more additional servers, determining a system in the cluster where adding the one or more servers will have a least impact on other work; and
selecting that system as a target system.
-
-
4. The method of claim 1 in which a system having a greatest amount of unused capacity is selected as a target system.
-
5. The method of claim 1 in which the determining steps are performed by each of the systems.
-
6. The method of claim 5 in which each of the systems determines whether it is a target system and adds one or more servers locally if it determines that it is a target system.
-
7. The method of claim 1 in which the service class is a first service class, the cluster having at least one other service class, each of the service classes having a performance measure defined for it.
-
8. The method of claim 7 in which the step of determining whether servers should be added to the first service class comprises the steps of:
-
determining a positive effect on the performance measure for the first service class of adding a predetermined number of servers to the first service class;
determining a negative effect on the performance measure for one or more other service classes of adding the predetermined number of servers to the first service class; and
determining whether the positive effect on the performance measure for the first service class outweighs the negative effect on the performance measure for the one or more other service classes.
-
-
9. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform the method steps of claim 1.
-
10. In a cluster of information handling systems in which incoming work requests are placed in a queue for processing by one or more servers on the systems, a method of ensuring the availability of a server capable of processing each of the work requests in the queue, comprising the steps of:
-
determining whether there is a work request in the queue with an affinity only to a subset of the cluster that does not have servers for the queue; and
starting a server for the queue on a system in the subset to which the work request has an affinity if it is determined that there is a work request in the queue with an affinity only to a subset of the cluster that does not have servers for the queue. - View Dependent Claims (11, 12, 13, 14, 15)
determining whether the queue has a server on the system; and
determining whether there is a work request in the queue with an affinity only to a subset of the cluster only if the queue has no server on the system.
-
-
15. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform the method steps of claim 10.
-
16. In a cluster of information handling systems in which incoming work requests belonging to a service class are placed in a cluster-wide queue for processing by one or more servers on the systems of the cluster, apparatus for controlling the number of such servers, comprising:
-
means for determining whether one or more servers should be added to the service class;
means for determining a target system in the cluster on which the servers should be added if it is determined that one or more servers should be added to the service class; and
means for adding the servers on the target system.
-
-
17. In a cluster of information handling systems in which incoming work requests are placed in a queue for processing by one or more servers on the systems, apparatus for ensuring the availability of a server capable of processing each of the work requests in the queue, comprising:
-
means for determining whether there is a work request in the queue with an affinity only to a subset of the cluster that does not have servers for the queue; and
means for starting a server for the queue on a system in the subset to which the work request has an affinity if it is determined that there is a work request in the queue with an affinity only to a subset of the cluster that does not have servers for the queue.
-
Specification