Patent ID: 8161211

Claim:
A storage system, comprising: a 1st interface that receives information transferred from a higher device, a cache memory that stores the information temporarily, a storage device that has a storage area for storing the information, a 2nd interface that sends the information to the storage device, and a control device that executes control processing with respect to the information; wherein the control device removes from the information redundant parts that already exist in the storage area, and compresses the remaining parts and stores them in the relevant storage area, and wherein the control device executes: 1st processing in which the information is split into a plurality of segments and processed; 2nd processing in which whether a plurality of data combinations within the plurality of segments is of a 1st pattern that has regularity is determined; 3rd processing in which whether to determine redundancy only by detection of segments making the 1st pattern, or whether to determine redundancy between segments making the 1st pattern and segments stored in the storage area is determined; 4th processing in which areas in the cache memory occupied by segments that return positive in the 3rd processing are released; 5th processing in which, from among the plurality of segments, segments other than those returning positive in the 3rd processing are determined to be segments in which a plurality of data combinations is of a random, 2nd pattern; 6th processing in which the segments having the 2nd pattern are read from the cache memory; 7th processing in which for segments having the 2nd pattern a hash value for differentiating between the differences in the 2nd pattern is calculated; 8th processing in which a hash table containing the hash values for each of the plurality of segments stored in the storage area is referenced, and whether a hash value equal to the hash value obtained in the 7th processing exists in the hash table is determined; 9th processing in which areas in the cache memory occupied by segments that return positive in the 8th processing are released; 10th processing in which information stored in areas in the cache memory occupied by segments other than those that return positive in the 8th processing is compressed; 11th processing in which one or more destage blocks, which comprise the compressed data and are units used when storing information from the cache memory in the storage area, are created; and 12th processing in which the destage blocks are stored in the storage area.