EP1533699A1

A method of assigning objects to processing units

Abstract

The present invention relates to a method of assigning objects to processing units of a cluster of processing units, each one of the objects having an object size and an object load, each one of the processing units having a storage capacity and a load capacity, the method comprising the steps of: - a) calculating an index based on object size and object load for each one of the objects,- b) sorting of the objects by index to provide a sequence of objects;- c) for each processing unit of the cluster: assigning of one or more of the objects to the processing unit in sequential order until a remaining storage capacity and/or a remaining load capacity of the processing unit is too small for consecutive objects of the sequence;deleting of the objects that are assigned to the processing unit from the sequence.

EP1533699A1, drawing sheet 1
Sheet 1 of 23

Term

Term ended

Projected expiry passed 21 November 2023, 2.8 years ago.

  1. Priority and filed
  2. Published
  3. Projected expiry
  4. Today

20 claims: 12 independent, 8 dependent

  1. 1
    A method of assigning objects to processing units of a cluster of processing units, each one of the objects having an object size and an object load, each one of the processing units having a storage capacity and a load capacity, the method comprising the steps of:- a) calculating an index based on object size and object load for each one of the objects,- b) sorting of the objects by index to provide a sequence of objects;- c) for each processing unit of the cluster: - assigning of one or more of the objects to the processing unit in sequential order until a remaining storage capacity and/or a remaining load capacity of the processing unit is too small for consecutive objects of the sequence;- deleting of the objects that are assigned to the processing unit from the sequence.
  2. 6
    The method of any one of the preceding claims 1 to 5 further comprises the steps of:- d) determining the total of the sizes of the objects,- e) determining the total of the loads of the objects,- f) determining a first difference between the total of the storage capacities of the minimum number of processing units and the total of the sizes of the objects,- g) determining a second difference between the total of the load capacities of the minimum number of processing units and the total of the load of the objects,- h) subtracting the first difference divided by the minimum number of processing units from the storage capacity to provide a first threshold,- i) subtracting the second difference divided by the minimum number of processing units from the load capacity to provide a second threshold,- j) performing step 1 c) again, whereby the remaining storage capacity is determined by the difference between the aggregated size of the objects being assigned to the processing unit and the first threshold, and whereby the remaining load capacity is determined by the difference between the aggregated load of the objects being assigned to the processing unit and the second threshold,- k) in case that as a result of step 6 j) there is an excess amount of memory requirement for one of the processing units that surpasses the first threshold, dividing the excess amount by the minimum number of processing units and increasing the first threshold by the result of the division.- I) in case that as result of step 6 j) there is an excess load requirement for one of the processing units that surpasses the second threshold, dividing the excess load by the minimum number of processing units and increasing the second threshold by the result of the division, whereby steps 6 j), 6 k) and 6 l) are performed repeatedly until there is no such excess amount of memory requirement and no such excess load requirement.
  3. 7
    The method of any one of the preceding claims 1 to 6, further comprising the steps of:- d) stepwise varying the first and second thresholds between respective first and second limits,- e) performing step 1 c) for each first and second threshold value, whereby the remaining storage capacity is the difference between the aggregated size of the objects being assigned to the processing unit and the first threshold, and whereby the remaining load capacity is the difference between the aggregated load of the objects being assigned to the processing unit and the second threshold, and whereby a statistical measure is calculated for the assignment of objects to the processing unit,- f) selecting one of the assignments of objects to processing units based on the statistical measure.
  4. 10
    The method of any one of the preceding claims 1 to 9, whereby the objects are database tables of various sizes.
  5. 11
    The method of any one of the preceding claims 1 to 10, whereby each one of the processing units is a blade or a blade server.
  6. 12
    The method of any one of the preceding claims 1 to 11, whereby the index of an object is calculated based on the sum of the normalised object size and object load and based on the absolute value of a difference between the normalised object size and the normalised object load.
  7. 13
    A computer program product for assigning objects to processing units of a cluster of processing units, each one of the objects having an object size and an object load, each one of the processing units having a storage capacity and a load capacity, the computer program product comprising instructions for:- a) calculating an index based on object size and object load for each one of the objects,- b) sorting of the objects by index to provide a sequence of objects;- c) for each processing unit of the cluster: - assigning of one or more of the objects to the processing unit in sequential order until a remaining storage capacity and/or a remaining load capacity of the processing unit is too small for consecutive objects of the sequence;- deleting of the objects that are assigned to the processing unit from the sequence.
  8. 16
    The computer program product of claims 13, 14, or 15 the instructions being adapted to perform the steps of:- d)determining the total of the sizes of the objects,- e) determining the total of the loads of the objects,- f) determining a first difference between the total of the storage capacities of the minimum number of processing units and the total of the sizes of the objects,- g) determining a second difference between the total of the load capacities of the minimum number of processing units and the total of the load of the objects,- h) subtracting the first difference divided by the minimum number of processing units from the storage capacity to provide a first threshold,- i) subtracting the second difference divided by the minimum number of processing units from the load capacity to provide a second threshold,- j) performing step 13 c) again, whereby the remaining storage capacity is determined by the difference between the aggregated size of the objects being assigned to the processing unit and the first threshold, and whereby the remaining load capacity is determined by the difference between the aggregated load of the objects being assigned to the processing unit and the second threshold,- k) in case that as a result of step 16 j) there is an excess amount of memory requirement for one of the processing units that surpasses the first threshold, dividing the excess amount by the minimum number of processing units and increasing the first threshold by the result of the division.- I) in case that as result of step 16 j) there is an excess load requirement for one of the processing units that surpasses the second threshold, dividing the excess load by the minimum number of processing units and increasing the second threshold by the result of the division, whereby steps 16 j), 16 k) and 16 I) are performed repeatedly until there is no such excess amount of memory requirement and no such excess load requirement.
  9. 17
    The computer program product of any one of the preceding claims 13 to 16, the instructions being adapted to perform the steps of:- d) stepwise varying the first and second thresholds between respective first and second limits,- e) performing step 13 c) for each first and second threshold value, whereby the remaining storage capacity is the difference between the aggregated size of the objects being assigned to the processing unit and the first threshold, and whereby the remaining load capacity is the difference between the aggregated load of the objects being assigned to the processing unit and the second threshold, and whereby a statistical measure is calculated for the assignment of objects to the processing unit,- f) selecting one of the assignments of objects to processing units based on the statistical measure.
  10. 18
    The computer program product of any one of the preceding claims 13 to 17, the instructions being adapted to calculate the index of an object on the basis of the sum of the normalised object size and normalised object load and on the basis of the absolute value of the difference of normalised object size and normalised object load.
  11. 19
    A data processing system for determining a minimum number of processing units of a cluster of processing units for a given number of objects having various object sizes and object loads, the data processing system comprising:- means for calculating an index based on object size and object load for each one of the objects,- means for assigning of one or more of the objects to a processing unit in sequential order until a remaining storage capacity and/or a remaining load capacity of the processing unit is too small for consecutive objects of the sequence and for deleting of the objects that are assigned to the processing unit from the sequence.- means for outputting of the minimum number of the processing units.
  12. 20
    A blade server having balancing means for dynamically assigning objects to a plurality of blade servers, each one of the objects having an assigned index that is based on object size and object load, the balancing means being adapted to assign objects to the blade servers by the steps of:- a) sorting of the objects by index to provide a sequence of objects;- b) for each processing unit of the cluster: - assigning of one or more of the objects to the processing unit in sequential order until a remaining storage capacity and/or a remaining load capacity of the processing unit is too small for consecutive objects of the sequence;- deleting of the objects that are assigned to the processing unit from the sequence.