System and method for backing up data
First Claim
1. A method for backing up data, the method comprising:
- generating a first digital fingerprint representing a first data block stored at a first location in a first memory device;
comparing the first digital fingerprint to one or more values stored in a database;
if the first digital fingerprint does not match any of the values stored in the database;
storing a copy of the first data block in a second memory device separate from the first memory device;
storing the first digital fingerprint in the database;
and storing the first location in the database in association with the first digital fingerprint;
generating a second digital fingerprint representing a second data block stored at a second location in a third memory device;
comparing the second digital fingerprint to the one or more values stored in the database; and
if the second digital fingerprint matches one of the one or more values stored in the database, storing the second location in the database in association with the one value.
4 Assignments
0 Petitions
Accused Products
Abstract
A hash-optimized backup system and method takes data blocks and generates a probabilistically unique digital fingerprint of the content of each data block using a substantially collision-free algorithm. The process compares the generated fingerprint to a database of stored fingerprints and, if the generated fingerprint matches a stored fingerprint, the data block is determined to already have been backed up, and therefore does not need to be backed up again. Only if the generated fingerprint does not match a stored fingerprint is the data block backed up, at which point the generated fingerprint is added to the database of stored fingerprints. Because the algorithm is substantially collision-free, there is no need to compare actual data content if there is a hash-value match. The process can also be used to audit software license compliance, inventory software, and detect computer-file tampering such as viruses and malware.
-
Citations
33 Claims
-
1. A method for backing up data, the method comprising:
-
generating a first digital fingerprint representing a first data block stored at a first location in a first memory device; comparing the first digital fingerprint to one or more values stored in a database; if the first digital fingerprint does not match any of the values stored in the database; storing a copy of the first data block in a second memory device separate from the first memory device; storing the first digital fingerprint in the database; and storing the first location in the database in association with the first digital fingerprint; generating a second digital fingerprint representing a second data block stored at a second location in a third memory device; comparing the second digital fingerprint to the one or more values stored in the database; and if the second digital fingerprint matches one of the one or more values stored in the database, storing the second location in the database in association with the one value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for backing up data, the apparatus comprising:
-
means for generating a first digital fingerprint representing a first data block stored at a first location in a first memory device; means for comparing the first digital fingerprint to one or more values stored in a database; means for storing a copy of the first data block in a second memory device separate from the first memory device, for storing the first digital fingerprint in the database, and for storing the first location in the database in association with the first digital fingerprint, if the first digital fingerprint does not match any of the values stored in the database; means for generating a second digital fingerprint representing a second data block stored at a second location in a third memory device; means for comparing the second digital fingerprint to the one or more values stored in the database; and means for storing the second location in the database in association with the one value, if the second digital fingerprint matches one of the one or more values stored in the database.
-
-
18. A system for backing up data, the system comprising:
-
a first memory device configured to store data; a second memory device configured to store data; a third memory device configured to store data; a database configured to store one or more digital fingerprints; and a processor configured to; generate a first digital fingerprint representing a first data block stored at a first location in the first memory device; compare the first digital fingerprint to one or more values stored in the database; if the first digital fingerprint does not match any of the values stored in the database; store a copy of the first data block in the second memory device separate from the first memory device; store the first digital fingerprint in the database; and store the first location in the database in association with the first digital fingerprint; generate a second digital fingerprint representing a second data block stored at a second location in the third memory device; compare the second digital fingerprint to the one or more values stored in the database; and store the second location in the database in association with the one value, if the second digital fingerprint matches one of the one or more values stored in the database. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification