Patent ID: 8010753
Filing Date: 2011-08-30
Classification: G06F

Abstract:
1. A method for operating a storage system, comprising: performing an initial allocation of respective partitions of a physical storage resource of the storage system to respective hosts of the storage system, wherein: assigning two or more ranges of memory addresses in the first plurality of ranges of memory addresses in the first partition that are available for conditional transfer of use by the second partition when not in use by the first partition; assigning two or more ranges of memory addresses in the second plurality of ranges of memory addresses in the second partition that are available for conditional transfer of use by the first partition when not in use by the second partition, wherein assigning the two or more ranges of memory addresses in the first plurality of memory addresses and assigning the two or more ranges of memory addresses in the second plurality of memory ranges occur at the first time; receiving data from the second host for storage in the physical storage resource; determining if the physical storage resource includes sufficient free memory space to store the data; returning an error message to the second host if the physical storage resource includes insufficient free memory space to store the data; determining if the second partition includes sufficient free memory space to store the data; storing the data in the second partition if the second partition includes sufficient free memory space to store the data; determining if one or more of the two or more ranges of memory addresses in the first plurality of ranges of memory addresses are being used by another host if the second partition includes insufficient free memory space to store the data; locating another partition for storing the data if the of two or more ranges of memory addresses in the first plurality of ranges of memory addresses are being used by another host; temporarily transferring use of the one or more of the two or more ranges of memory addresses in the first plurality of ranges of memory addresses from the first host to the second host at a second time subsequent to the first time and in accordance with a predetermined condition if the one or more of the two or more ranges of memory addresses in the first plurality of ranges of memory addresses is not being used by another host, the predetermined condition providing the first host with the ability to require the return of the use of the transferred one or more of the two or more ranges of memory addresses in the first plurality of ranges of memory addresses during such temporary use of the one or more of the two or more ranges of memory addresses in the first plurality of ranges of memory addresses by the second host; and returning, by the second host, use of the transferred one or more of the two or more ranges of memory addresses in the first plurality of ranges of memory addresses to the first host when the first host requires return of the use of the transferred one or more of the two or more ranges of memory addresses in the first plurality of ranges of memory addresses.