Patent ID: 8463757

Claim:
An apparatus, comprising: a processor, a memory, a set of logics, and an interface configured to connect the processor, the memory, and the set of logics, the set of logics comprising: a first logic configured to partition a file into a plurality of blocks, to compute a plurality of hashes corresponding to the plurality of blocks, and to compute a file identifier for the file based on the plurality of hashes; a second logic configured to selectively store the file in a file store upon determining that the file store has less than a first threshold number of instances of the file and to selectively update an entry for the file in a file data structure, where the entry stores information about the file and stores information for locating repair blocks associated with the file; a third logic configured to selectively manipulate a repository of repair blocks upon determining that a member of the plurality of blocks is a repair block for which an update action is to be performed, where the update action is identified as a function of determining how many instances of the repair block are available to the apparatus in the file store and the repository of repair blocks collectively; and a fourth logic configured to selectively update information for locating instances of repair blocks in one or more of, the repository of repair blocks, and the file store, where the information for locating instances of repair blocks is updated as a function of comparing the location information for the repair block to location information for other instances of the repair block located in one or more of, the file store, and the repository of repair blocks, where the first threshold number is greater than one, and where the second logic is configured to selectively compress the file before writing the file to the file store upon determining that the file store already stores a second threshold number of instances of the file.