Patent ID: 8645334

Claim:
A method, comprising: controlling a data de-duplication process to receive a data segment; controlling the process to compute a de-duplication hash for the data segment; controlling the process to access a de-duplication index, where the de-duplication index comprises keys and values, where the de-duplication index is configured to be accessed using the de-duplication hash as a key, and where the de-duplication index is configured to store references to unique data segments available to the process; controlling the process to determine whether the de-duplication hash for the data segment is present in the de-duplication index; upon determining that the de-duplication hash is not present in the de-duplication index: controlling the process to store the data segment on a first storage device as a unique instance of the data segment; controlling the process to store, in the de-duplication index, information sufficient to locate the data segment as stored on the first storage device; and controlling the process to set to an initial value a reference count associated with the data segment; and upon determining that the de-duplication hash for the data segment is present in the de-duplication index: controlling the process to update the reference count associated with the data segment; and upon determining that the reference count associated with the data segment exceeds a threshold: controlling the process to store the data segment on a second storage device as an additional instance of the data segment; where controlling the process to update the reference count includes selectively not updating the reference count if the data segment was not received within a threshold period of time after the receipt of a previous instance of the data segment; and controlling the computer to store, in the de-duplication index, information sufficient to locate the data segment as stored on the second storage device.