Patent ID: 8782003

Claim:
A system for processing data, comprising: a deduplicating system that stores a copy of at least a portion of data stored in a data storage system at a first snapshot time at least in part by generating a first snapshot of the data, wherein the deduplicating system includes a fingerprint index that comprises a list of fingerprints associated with every unique segment stored in the deduplicating system, wherein the data storage system includes a stored log file that stores one or more data changes and times associated with each data change, and wherein the deduplicating system generates the first snapshot by: breaking at least a portion of the data at the data storage system into a plurality of segments; computing a fingerprint for each of at least a subset of the plurality of segments; storing the fingerprints in the first snapshot, wherein a snapshot includes a list of fingerprints of data comprising at least the portion of the data stored in the data storage system, and wherein a fingerprint that correspond to identical segments is repeated in a snapshot; identifying, based at least in part on the fingerprint index, fingerprints in the snapshot that are not in the fingerprint index; and storing only segments that correspond to the identified fingerprints such that each stored segment is able to be used to reconstruct the data stored in the data storage system; an interface for receiving an indication to revert data stored in the data storage system to a state at a snapshot time; and a processor configured to: determine a first subset of the data stored in the data storage system that has changed since a prior snapshot using the stored log file; and determine a second subset of the data stored in the data storage system that has changed between the prior snapshot and the snapshot time using a first list of fingerprints associated with the prior snapshot and a second list of fingerprints associated with the snapshot time.