Managing compressed data in a storage system
First Claim
Patent Images
1. A system comprising:
- a storage device; and
a storage controller coupled to the storage device, wherein the storage controller is configured to;
generate at least a first fingerprint and a second fingerprint for first input data, wherein a size of the first input data is greater than a size of a single physical storage block;
compress the first input data to a size less than or equal to the size of a single physical storage block;
generate, for the compressed first input data, a third fingerprint;
store references from the first, second, and third fingerprints to a first physical storage block storing the compressed first input data; and
free the first physical storage block if there are no remaining references to the first physical storage block.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and computer readable storage mediums for optimistically managing compressed data in a storage system. When possible, multiple input blocks are compressed into a buffer and stored in a single physical block on a storage device. The metadata of the multiple input blocks can be managed separately. A fingerprint of the compressed buffer can be generated and used as an index to the single physical block. Alternatively, fingerprints of the uncompressed input blocks can be generated, and reference counts can be maintained to track the number of input blocks which reference the compressed buffer.
-
Citations
17 Claims
-
1. A system comprising:
-
a storage device; and a storage controller coupled to the storage device, wherein the storage controller is configured to; generate at least a first fingerprint and a second fingerprint for first input data, wherein a size of the first input data is greater than a size of a single physical storage block; compress the first input data to a size less than or equal to the size of a single physical storage block; generate, for the compressed first input data, a third fingerprint; store references from the first, second, and third fingerprints to a first physical storage block storing the compressed first input data; and free the first physical storage block if there are no remaining references to the first physical storage block. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
generating at least a first fingerprint and a second fingerprint for first input data, wherein a size of the first input data is greater than a size of a single physical storage block; compressing the first input data to a size less than or equal to the size of a single physical storage block; generating, for the compressed first input data, a third fingerprint; storing references from the first, second, and third fingerprints to a first physical storage block storing the compressed first input data; and freeing the first physical storage block if there are no remaining references to the first physical storage block. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by a processor to:
-
generate at least a first fingerprint and a second fingerprint for first input data, wherein a size of the first input data is greater than a size of a single physical storage block; compress the first input data to a size less than or equal to the size of a single physical storage block; generate, for the compressed first input data, a third fingerprint store references from the first, second, and third fingerprints to a first physical storage block storing the compressed first input data; and free the first physical storage block if there are no remaining references to the first physical storage block. - View Dependent Claims (14, 15, 16, 17)
-
Specification