Patent ID: 7454443
Filing Date: 2008-11-18
Classification: G06F,Y10S

Abstract:
1. A system for managing data, said system comprising a processor, said processor configured to generate backup data by comparing data from files stored in memory to a previous version of the files stored in the memory, wherein the processor is configured to: a) receive data from a data source to be managed, said data source comprising a plurality of different files; b) generate data blocks from said data; c) generate checksums of said data blocks; d) generate a message digest for each of said data blocks; e) store the data blocks for all of said plurality of files in a data block collection with corresponding checksums and message digests; f) for each of said plurality of different files, create a file descriptor that contains pointers to said data blocks in the data block collection comprising that file; g) receive data at a later time point from said data source comprising said plurality of different files; h) generate data blocks of said later received data; i) generate checksums of said later received data blocks; j) generate a message digest for each of said later received data blocks; k) for each later received data block generated, compare the checksum and message digest to the checksums and message digests in the data block collection; l) for files that only have data block content identical with previously stored data blocks, generate a backup file storing only a fingerprint, metadata, and pointers to identical blocks in the previously stored data block collection; m) for files that have non-identical, but overlapping data blocks with previously stored data blocks, generate a backup file storing: i) metadata and pointers to previously stored data blocks in common with the file; and ii) new data blocks that are added to the data block collection, along with pointers to the new data blocks; and n) for files that have no data blocks in common with previously stored data blocks, generate a backup file storing: i) file metadata; and ii) new data blocks that are added to the data block collection, along with pointers to the new data blocks.