Patent ID: 8224938

Claim:
A data processing system for assigning a set of objects to processing units of a cluster of processing units, the data processing system comprising: first determining means that determines a re-distribution of the objects over the processing units, the re-distribution specifying which objects to assign to a set of required processors among the processing units, wherein the objects include database tables, wherein each processing unit includes a memory unit; calculating means that calculates an expected duration required for applying the re-distribution, wherein the calculation is based on at least a time parameter and the aggregated size of the objects to be redistributed, the time parameter providing an estimate of an amount of down time for the processing units; a user interface that shows the expected duration to a user; and a processor for performing operations including: prompting the user, by the user interface, to select whether to distribute the objects according to one of a first and second modes; wherein in the first mode, the set of required processors includes all the processing units in the cluster; and in the second mode, the set of required processors consists of a minimum number of processing units determined using a two-dimensional minimization procedure comprising calculating a sorting index for each of the objects based on the normalised object size and load of each of the objects; creating an object sequence for re-distribution by sorting the objects by size; iteratively redistributing the objects in the object sequence across the required processing units by, for each required processing unit: determining a gap in the associated memory unit, wherein the gap represents free space on the memory unit; identifying the largest remaining object in the object sequence that will fit into the gap; adding the identified object to the memory unit; and removing the identified object from the object sequence; and after the object sequence has no more objects to redistribute, outputting the assignment of objects.