Patent attributes
Pieces of data are stored among storage devices based on a cycle value, which is computed for each storage device as the total capacity of all storage devices divided by the individual capacity of the storage device. Next, a storage device for a current piece of data is selected to be the storage device with the smallest key value; followed by determination of a new key value based on at least (a) the cycle value and (b) a sequence number of the current piece. After allocation, if the number of storage devices changes, reallocation is done similarly except that selection is first from a preferred set and only if the preferred set is empty then from a remainder set. Storage devices are placed in the preferred set if a piece of data would be outside a shadow (based on cycle value) of another piece pre-existing in the storage device.