Patent ID: 8166260

Claim:
A method for processing a plurality of uncompressed inactive snapshot blocks in a storage system, comprising: collecting information related to the plurality of uncompressed inactive snapshot blocks; wherein an inactive snapshot block is a block that is referenced by a snapshot, but is not actively referenced by a processor executable active file system of the storage system; storing the collected information in a queue; compressing the plurality of uncompressed inactive snapshot blocks when a number of the plurality of uncompressed inactive snapshot blocks reaches a programmable threshold value; storing the compressed inactive snapshot blocks as a compressed segment; updating a compression map structure with information regarding the compressed segment; wherein the compression map structure stores information regarding all the compressed segments maintained by the storage system and is used to locate the compressed inactive snapshot blocks and then de-compress the compressed inactive snapshot blocks based on the information stored by the compression map structure including information regarding a compression process used to compress the plurality of uncompressed inactive snapshot blocks, a pre-compressed segment size of the compressed segment and a post compression size of the compressed segment; and wherein the compression map structure stores a physical address of the compressed segment and includes a snapshot identifier for identifying a snapshot whose blocks are compressed within the compressed segment; and updating a compression information map structure for indicating that the plurality of uncompressed inactive snapshot blocks are compressed and providing a location of each inactive snapshot block within the compressed segment.