Patent ID: 8677052

Claim:
A system for storing data, comprising: a performance storage system comprising: a performance storage unit for storing at least one data item comprising a data file or a data block that includes a plurality of segments, wherein the performance storage system takes a snapshot of at least one data item in order to transfer the data item; and a performance segment storage unit for storing at least one set of deduplicated segments comprising one or more data items, wherein the at least one set of deduplicated segments comprising the one or more data items is stored in the performance segment storage unit as a set of segments in the event that performance access is desired for the one or more data items, and wherein the one or more data items, stored as originally received, are removed from the performance storage unit after the at least one set of deduplicated segments is transferred back to the performance segment storage unit; a segment storage system for receiving and storing the snapshot of the at least one data item stored in the performance storage system wherein the snapshot of the stored data item enables recall of the stored data item as stored at the time of the snapshot, wherein the segment storage system includes an index of stored segments, wherein the segment storage system stores the at least one data item as a deduplicated set of segments including by storing a first segment of the data item as a reference to a previously stored segment in the event that the first segment and the previously stored segment are determined to be identical based at least in part on the index of stored segments, and wherein in the event that the at least one data item is desired to be available with high performance, the deduplicated set of segments comprising the at least one data item is transferred back to the performance storage system and stored in the performance segment storage unit; wherein the storing of the snapshot comprises: determining whether a prior snapshot exists; and in the event that the prior snapshot exists: determining a delta between a new snapshot and the prior snapshot; and storing a copy of the delta and a reference to the prior snapshot.