EP1533699B1

A method of assigning objects to processing units

Abstract

This record has no abstract on file.

EP1533699B1, drawing sheet 1
Sheet 1 of 22

Term

Term ended

Expired 21 November 2023, 2.8 years ago.

  1. Priority and filed
  2. Granted
  3. Expired
  4. Today

5 claims: 3 independent, 2 dependent

  1. 1
    A computer implemented method of assigning a given set of data objects (1, 2, 3,..., 20) to processing units (B1, B2, B3,... BN) of a cluster (100) of processing units, each one of the data objects (1, 2, 3,..., 20) having an data object size and a data object load, the data object load being indicative of a mean number of access operations per time unit to the respective data object, the data objects (1, 2, 3,..., 20) being tables, arrays, lists or trees, each one of the processing units being a blade server, each blade server having the same storage capacity and the same load capacity, the method comprising the steps of:- a) calculating (200) an index based on data object size and data object load for each one of the data objects (1, 2, 3,..., 20), - b) sorting (201) of the data objects by index to provide a sequence of data objects (1, 2, 3,..., 20);- c) for each processing unit of the cluster: - assigning (206) of one or more of the data objects (1, 2, 3,..., 20) to the processing unit in the order of the sorted sequence until a remaining storage capacity or a remaining load capacity of the processing unit is too small for remaining data objects of the sequence, wherein the first data object of the sequence has the largest index;- deleting (216) of the data objects (1, 2, 3,..., 20) that are assigned to the processing unit from the sequence, whereby step 1 c) is carried out repeatedly until the sequence is empty in order to provide a minimum number of the processing units, whereby the remaining storage capacity is determined by the difference between the storage capacity and the aggregated size of data objects being assigned to the processing unit, whereby the remaining load capacity is determined by the difference between the load capacity and the aggregated loads of data objects being assigned to the processing unit, and further comprising the steps of: - d) determining (800) a first largest gap between the aggregated size of data objects being assigned to one of the processing units and the storage capacity, - e) determining (800) a second largest gap between the aggregated load of data objects being assigned to one of the processing units and the load capacity, - f) subtracting (802) the first largest gap divided by the minimum number of processing units from the storage capacity to provide a first threshold, - g) subtracting (802) the second largest gap divided by the minimum number of processing units from the load capacity to provide a second threshold, - h) performing (806) step 1 c) again for performing an assignment procedure of the data objects to the processing units using the sequence of data objects (1, 2, 3,..., 20) provided in step 1b), whereby for the second execution of step c) the storage capacity is set to the first threshold and the load capacity is set to the second threshold, wherein step 1 c) is carried out repeatedly until the sequence is empty again.
  2. 3
    A computer program product for assigning a given set of data objects (1, 2, 3,..., 20) to processing units (B1, B2, B3, ..., BN) of a cluster (100) of processing units, each one of the data objects having an data object size and a data object load, the data object load being indicative of a mean number of access operations per time unit to the respective data object, the data objects being tables, arrays, lists or trees, each one of the processing units being a blade server, each blade server having the same storage capacity and the same load capacity, the computer program product comprising instructions for:- a) calculating (200) an index based on data object size and data object load for each one of the data objects, - b) sorting (201) of the data objects by index to provide a sequence of data objects;- c) for each processing unit of the cluster: - assigning (206) of one or more of the data objects to the processing unit in the order of the sorted sequence until a remaining storage capacity or a remaining load capacity of the processing unit is too small for remaining data objects of the sequence, wherein the first data object of the sequence has the largest index;- deleting (216) of the data objects that are assigned to the processing unit from the sequence, instructions being adapted to repeatedly carry out step 3 c) until the sequence is empty and to output a minimum number of the processing units that are required for the data objects, whereby the remaining storage capacity is determined by the difference between the storage capacity and the aggregated size of data objects being assigned to the processing unit, whereby the remaining load capacity is determined by the difference between the load capacity and the aggregated loads of data objects being assigned to the processing unit, the instructions being adapted to perform the further steps of: - d) determining (800) a first largest gap between the aggregated size of data objects being assigned to one of the processing units and the storage capacity, - e) determining (800) a second largest gap between the aggregated load of data objects being assigned to one of the processing units and the load capacity, - f) subtracting (802) the first largest gap divided by the minimum number of processing units from the storage capacity to provide a first threshold, - g) subtracting (802) the second largest gap divided by the minimum number of processing units from the load capacity to provide a second threshold, - h) performing (806) step 3 c) again for performing an assignment procedure of the data objects to the processing units using the sequence of data objects provided in step 3b), whereby for the second execution of step c) the storage capacity is set to the first threshold and the load capacity is set to the second threshold, wherein step 3 c) is carried out repeatedly until the sequence is empty again.
  3. 5
    A blade server having balancing means for dynamically assigning a given set of data objects (1, 2, 3,..., 20) to a plurality of processing units of a cluster (100) of processing units, the processing units being blade server servers (B1, B2, B3,...,BN), each one of the data objects (1, 2, 3,..., 20) having an assigned index that is based on data object size and data object load, the data object load being indicative of a mean number of access operations per time unit to the respective data object, the data objects being tables, arrays, lists or trees, each one of the processing units having the same storage capacity and the same load capacity, the balancing means being adapted to assign data objects to the blade server servers by the steps of:a) calculating (200) an index based on data object size and data object load for each one of the data objects (1, 2, 3,..., 20) b) sorting (201) of the data objects by index to provide a sequence of data objects (1, 2, 3,..., 20);c) for each processing unit of the cluster: assigning (206) of one or more of the data objects (1, 2, 3,..., 20) to the processing unit in the order of the sorted sequence until a remaining storage capacity or a remaining load capacity of the processing unit is too small for remaining data objects of the sequence, wherein the first data object of the sequence has the largest index;deleting (216) of the data objects (1, 2, 3,..., 20) that are assigned to the processing unit from the sequence, whereby step 5 c) is carried out repeatedly until the sequence is empty in order to provide a minimum number of the processing units, whereby the remaining storage capacity is determined by the difference between the storage capacity and the aggregated size of data objects being assigned to the processing unit, whereby the remaining load capacity is determined by the difference between the load capacity and the aggregated loads of data objects being assigned to the processing unit, and further comprising the steps of: - d) determining (800) a first largest gap between the aggregated size of data objects being assigned to one of the processing units and the storage capacity, - e) determining (800) a second largest gap between the aggregated load of data objects being assigned to one of the processing units and the load capacity, - f) subtracting (802) the first largest gap divided by the minimum number of processing units from the storage capacity to provide a first threshold, - g) subtracting (802) the second largest gap divided by the minimum number of processing units from the load capacity to provide a second threshold, - h) performing (806) step 5 c) again for performing an assignment procedure of the data objects to the processing units using the sequence of data objects provided in step 5b), whereby for the second execution of step c) the storage capacity is set to the first threshold and the load capacity is set to the second threshold, wherein step 5 c) is carried out repeatedly until the sequence is empty again.