IP Library Granted Patent US 8,595,188
Granted Patent B2
US 8,595,188 · App. 12/614,134 · Granted Nov 26, 2013

Operating system and file system independent incremental data backup

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,595,188
App. No.
12/614,134
Granted
Nov 26, 2013
Kind
B2
Abstract

Embodiments of the invention relate to creating an operating system and file system independent incremental data backup. A first data backup of a source system and second version of the data on the source system is received. A second data backup of the second version of the data is created by determining differences between the first data backup and the second version of the data. Each portion of the second version of the data that is the same as a portion of the first data backup is referenced in the second data backup. Each portion of the second version of the data that is different than all portions of the first data backup is included in the second data backup. The second data backup is appended to the first data backup to create an incremental data backup.

Claims (67)

1. A method of creating an operating system and file system independent incremental data backup, comprising:

receiving a first data backup of a source system, the first data backup being a byte-level data backup of the source system's storage;

receiving a second version of the source system's data as a byte stream, the second version being a verbatim binary copy of the source system's storage and received independent of the source system's file system and operating system;

partitioning said second version using a chunking method selected from the group consisting of: content-agnostic chunking, content-aware chunking, and fixed-size chunking;

creating a second data backup of the second version of the data, comprising:

determining differences between the first data backup and the second version of the data,

for a portion at a first position of the second version of the data that is the same as a portion of the first data backup, referencing the portion of the first data backup in the second data backup,

for a portion at a first position of the second version of the data that is different than all portions of the first data backup, including the portion of the second version of the data in the second data backup, and

creating reconstruction metadata for assembling an incremental data backup, of the first data backup, into a replication of the second version of the data; and

appending the second data backup to the first data backup, the appending creates a data backup incremental of the first data backup and the second data backup.

2. The method of claim 1 , wherein said determining comprises comparing a byte stream of the first data backup to a byte stream of the second version of the data.

3. The method of claim 1 , wherein said determining comprises comparing a signature for a potion of the second version of data to signatures for a plurality of portions of the first data backup.

4. The method of claim 1 , wherein the byte stream is received without knowledge of the source system's file system and operating system.

5. The method of claim 1 , wherein creating an incremental data backup independent of the source system's operating system and file system is done without file-level access to the source system's storage.

6. The method of claim 3 , wherein the signatures for comparison are signatures for the current version of the data and signatures for a most recently backed up version of the data.

7. The method of claim 3 , wherein:

the signatures for the portions of the first data backup and the second version of the data are hashes,

the hashes for the portions of the first data backup are stored in a first hash table, and

the hashes for the portions of the second version of the data are stored in the first hash table or and a second hash table.

8. The method of claim 3 , further comprising:

creating the first data backup of a first version of the data, wherein creating the first data backup of the first version of the data comprises:

comparing hashes of portions of the first version of the data to hashes of portions of previously stored data,

for portions of the first version of the data that have a same hash as portions of the previously stored data, referencing the portions of the first version of the data in the first data backup, and

for portions of the first version of the data that have a different hash than portions of the previously stored data, storing the portions of the first version of the data in the first data backup.

9. A computer program product of creating an operating system and file system independent incremental data backup, said program product comprising a non-transitory computer readable storage medium having computer usable program code embodied therewith, said program code being readable/executable by a computer to:

receive a first data backup of a source system, the first data backup being a byte-level data backup of the source system's storage;

receive a second version of the source system's data as a byte stream, the second version being a verbatim binary copy of the source system's storage and received independent of the source system's file system and operating system;

partition said second version using a chunking method selected from the group consisting of: content-agnostic chunking, content-aware chunking, and fixed-size chunking;

create a second data backup of the second version of the data, comprising:

determine differences between the first data backup and the second version of the data,

for a portion at a first position of the second version of the data that is the same as a portion of the first data backup, reference the portion of the first data backup in the second data backup,

for a portion at a first position of the second version of the data that is different than all portions of the first data backup, include the portion of the second version of the data in the second data backup, and

create reconstruction metadata for assembling an incremental data backup, of the first data backup, into a replication of the second version of the data; and

append the second data backup to the first data backup, the append creates a data backup incremental of the first data backup and the second data backup.

10. The computer program product of claim 9 , wherein said determine comprises comparing a signature for a potion of the second version of data to signatures for a plurality of portions of the first data backup.

11. The computer program product of claim 9 , wherein the byte stream is received without knowledge of the source system's file system and operating system.

12. The computer program product of claim 9 , wherein creating an incremental data backup independent of the source system's operating system and file system is done without file-level access to the source system's storage.

13. The computer program product of claim 10 , wherein:

the signatures for the portions of the first data backup and the second version of the data are hashes,

the hashes for the portions of the first data backup are stored in a first hash table, and

the hashes for the portions of the second version of the data are stored in the first hash table or and a second hash table.

14. The computer program product of claim 10 , said program code being further readable/executable by a computer to:

create the first data backup of a first version of the data, including:

compare hashes of portions of the first version of the data to hashes of portions of previously stored data,

for portions of the first version of the data that have a same hash as portions of the previously stored data, reference the portions of the first version of the data in the first data backup, and

for portions of the first version of the data that have a different hash than portions of the previously stored data, store the portions of the first version of the data in the first data backup.

15. A system of creating an operating system and file system independent incremental data backup, comprising:

a memory device for buffering data to be backed up by the system;

a storage device for storing data being backed up by the system;

a processor for executing computer usable program code; and

a computer readable storage medium having computer usable program code embodied therewith, said program code being executable by the processor to:

receive a first data backup of a source system, the first data backup being a byte-level data backup of the source system's storage,

receive a second version of the source system's data as a byte stream, the second version being a verbatim binary copy of the source system's storage and received independent of the source system's file system and operating system,

partition said second version using a chunking method selected from the group consisting of: content-agnostic chunking, content-aware chunking, and fixed-size chunking

create a second data backup of the second version of the data, comprising:

determine differences between the first data backup and the second version of the data,

for a portion at a first position of the second version of the data that is the same as a portion of the first data backup, reference the portion of the first data backup in the second data backup,

for a portion at a first position of the second version of the data that is different than all portions of the first data backup, include the portion of the second version of the data in the second data backup, and

create reconstruction metadata for assembling an incremental data backup, of the first data backup, into a replication of the second version of the data; and

append the second data backup to the first data backup, the append creates a data backup incremental of the first data backup and the second data backup.

16. The system of claim 15 , wherein said determine comprises comparing a signature for a potion of the second version of data to signatures for a plurality of portions of the first data backup.

17. The system of claim 15 , wherein the byte stream is received without knowledge of the source system's file system and operating system.

18. The system of claim 15 , wherein creating an incremental data backup independent of the source system's operating system and file system is done without file-level access to the source system's storage.

19. The system of claim 16 , wherein said program code is further executable by the processor to create the first data backup of the first version of the data, and said create the first data backup comprises:

compare hashes of portions of the first version of the data to hashes of portions of previously stored data,

for portions of the first version of the data that have a same hash as portions of the previously stored data, reference the portions of the first version of the data in the first data backup, and

for portions of the first version of the data that have a different hash than portions of the previously stored data, store the portions of the first version of the data in the first data backup.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2017
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DROPBOX, INC.
Reel/Frame 043938/0489 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2009
From: GRUHL, DANIEL; PIEPER, JAN H.; SMITH, MARK ANDREW
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 023484/0208 →