Patent ID: 9183217
Filing Date: 2015-11-10
Classification: G06F

Abstract:
1. A method for generating data in a storage system configured to compress data via a compression processor and store the data; wherein if a write request targets a portion of the compression unit, decompressing only a portion of the compression unit not included in a target range of the write request, and generating decompressed data based on a decompressed portion of the compression unit not included in the target range of the write request and the write data corresponding to the write request; and storing non-compressed data in a cache memory, wherein the non-compressed data are targets of a read processing and a write processing and correspond to a different logical address of a virtual volume, wherein the compressed data and non-compressed data is stored in the virtual volume, and wherein compression processing is executed at a predetermined timing; wherein a non-compressed data unit corresponding to the compression unit is divided at an intermediate point, wherein data from a beginning of the non-compressed data unit to the intermediate point thereof is compressed from the beginning, and data from the intermediate point to an end of the non-compressed data unit is searched from the end toward the intermediate point to have data compressed from the end, by which a compressed data of each compression unit is created, wherein when the write requests targets a portion of said compression unit, if a start address of the write request is smaller than or equal to a beginning address of a non-compressed data unit and an address adding a write data length to the start address of the write request is smaller than the intermediate point, the intermediate point is set variably as a decompression range boundary, and by moving the decompression range boundary to a position equivalent to an address adding the write data length to the start address of the write request, a portion of the compression unit corresponding to a range starting from an address adding the write data length to a start address of the write request which is the decompression range boundary to an end address of the non-compressed data unit is decompressed as a portion not included in the target range of the write request.