Patent ID: 8131927

Claim:
A computerized data storage system comprising: a. at least one storage device; b. a cache memory operatively coupled to a storage port and a data management controller, the cache memory comprises a data storing area storing data; c. the storage port, wherein the storage port operable to connect to a host computer, wherein the storage port receives and sends I/O information required by the host computer, wherein the storage port is operable to receive a request to read data, and, in response to the request to read data, the storage port is operable to send the data stored in the data storing area of the cache memory and wherein the storage port is operable to receive a request to write data, and, in response to the request to write data, the storage port is operable to send write data to the data storing area of the cache memory; d. a thin provisioning controller, the thin provisioning controller operable to manage virtual volumes to which one or more capacity pool pages from capacity pools are allocated, and to which at least one of the virtual volumes is attributed as a target of a compression; e. a data compression controller operable to perform a compression operation on the capacity pool page, and f. a data decompression controller operable to perform a decompression operation on the capacity pool page; wherein the data management controller is operable to: store a first write data, which is corresponding to a first write request targeted to a first area in a first virtual volume not attributed as the target of a compression, in the cache memory, allocate a first capacity pool page from the capacity pool to store the first write data; wherein the data management controller is further operable to: store a second write data, which is corresponding to a second write request targeted to a second area in a second virtual volume attributed as the target of the compression, in the cache memory, transfer a data corresponding to the second write data to the cache memory from a second capacity pool page in the storage device after decompressing the data if the data was compressed, merge the data corresponding to the second write data received from the second capacity pool page in the storage device with the second write data stored in the cache memory, compress the merged data by the data compression controller, and allocate a third capacity pool page, other than the first or second capacity pool page, from the capacity pools to store the compressed and merged data.