Patent ID: 8412682
Filing Date: 2013-04-02
Classification: G06F

Abstract:
1. A method, comprising: storing data in a plurality of data blocks serviced by a storage system having a processor; receiving a write operation directed to a data block of the plurality of data blocks; performing a first computation to generate a checksum value for the data block to verify data integrity of the write operation; generating, without requiring a second computation, a fingerprint of the data block to identify duplicate data of the plurality of data blocks by storing at least a portion of the checksum value generated to verify data integrity in the fingerprint and storing at least a portion of data from the data block in the fingerprint; storing, in a fingerprint record, a copy of extracted metadata associated with the data block, wherein the metadata includes a generation number of an index node (inode) associated with the data block; storing the fingerprint in the fingerprint record; deleting the inode associated with the data block; reallocating the inode in response to a new write operation; modifying the generation number of the inode associated with the data block in response to the new write operation; and eliminating the fingerprint record in response to the generation number of the fingerprint record differing from the modified generation number.