Patent ID: 8898119
Filing Date: 2014-11-25
Classification: G06F

Abstract:
1. A method comprising: generating, by a storage server, a fingerprint for each data block stored on a storage device in storage, wherein a fingerprint entry for each fingerprint generated by the storage server is stored in a changelog file, and wherein the storage server is coupled to the storage device that stores blocks of data; creating, by the storage server, a fingerprints datastore divided into a primary datastore and a secondary datastore, wherein entries in the primary datastore comprises a single entry for each unique fingerprint identified as not corresponding to a duplicate data block and the secondary datastore comprises an entry for each fingerprint identified as corresponding to a duplicate data block; merging, by the storage server, entries in the changelog file with the entries in the primary datastore to identify duplicate data blocks in the storage device; freeing, by the storage server, the identified duplicate data blocks in the storage device; storing, by the storage server, the entries that correspond to the freed data blocks to a third datastore; and overwriting, by the storage server, the primary datastore with the entries from the merged entries that correspond to the unique fingerprints to create an updated primary datastore, wherein, when a request for a de-duplication operation is received during execution of a verify operation, the verify operation is suspended while the de-duplication operation is executing and is subsequently resumed upon completion of the de-duplication operation, the suspension of the verify operation comprising marking the primary datastore as read-only, storing the verify operation in a current state to a storage device, and adding a message to a queue representing the suspended verify operation.