Patent ID: 8631410

Claim:
A method for scheduling a job in a cluster including multiple computing nodes, comprising: constructing the multiple computing nodes in the cluster into multiple virtual sub-clusters based on rules defining construction of virtual sub-clusters of the multiple computing nodes, the rules including entry rules and exit rules for the multiple virtual sub-clusters, the rules configurable to specify a plurality characteristics for including a node of the multiple computing nodes into a virtual sub-cluster; receiving a job to be dispatched; selecting a virtual sub-cluster in accordance with a predetermined ratio associated with a job characteristic of the received job, dispatching the received job to the selected virtual sub-cluster; scheduling at least one computing node for the received job in the selected virtual sub-cluster; and in response to state changes of a computing node, re-organizing the virtual sub-cluster, including: determining whether the computing node having state changes satisfies the exit rule of the virtual sub-cluster to which the computing node belongs; responsive to determining that the computing node having state changes does not satisfy the exit rule of the virtual sub-cluster to which the computing node belongs, terminating the re-organizing; and responsive to determining that the computing node having state changes does satisfy the exit rule of the virtual sub-cluster to which the computing node belongs, excluding the computing node with state changes from the virtual sub-cluster to which the computing node with state changes belongs, determining whether the computing node with state changes satisfies entry rules of other virtual sub-clusters to determine which virtual sub-cluster the computing node with state changes should belong to, and including the computing node into the determined virtual sub-cluster.