IP Library Granted Patent US 6,983,352
Granted Patent B2
US 6,983,352 · App. 10/464,877 · Granted Jan 3, 2006

System and method for point in time backups

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 6,983,352
App. No.
10/464,877
Granted
Jan 3, 2006
Kind
B2
Abstract

A system and method for performing a point in time backup is presented. A backup application initiates a point in time backup whereupon a backup tracker monitors write requests during the point in time backup. The backup tracker logs data block locations that have already been backed up whose content changes in response to a write request. After a first pass of backing up data blocks, the backup application backs up the changed data blocks. During the changed data block backup procedure, the backup application invokes a copy on write command for particular changed data blocks that receive write requests prior to their content being backed up. The copy on write command stores the particular changed data block's content in a temporary storage area in which the backup application retrieves when the backup application is ready to backup the particular changed data blocks.

Claims (68)

1. A method for backing up data, said method comprising:

initiating a backup, the backup including copying a plurality of data blocks from a first storage area to a second storage area;

receiving a first write request during the backup, the first write request corresponding to a data block included in the plurality of data blocks;

determining, during the backup, whether the data block has been copied to the second storage area; and

logging, during the backup, the data block's location in response to determining that the data block has been copied.

2. The method as described in claim 1 wherein the determining further comprises:

retrieving a read progress point, the read progress point corresponding to the progress of the backup; and

comparing the read progress point to the data block's location.

3. The method as described in claim 1 further comprising:

wherein the write request results in a changed data block at the data block's location;

retrieving the data block's location from a log file; and

copying the changed data block to the second storage area.

4. The method as described in claim 3 further comprising:

receiving a second write request, the second write request corresponding to the changed data block;

identifying whether the changed data block has been copied to the second storage area; and

duplicating the changed data block in a temporary storage area in response to the identification.

5. The method as described in claim 4 further comprising:

detecting whether the changed data block has been duplicated in the temporary storage area; and

performing the copying using the temporary storage area.

6. The method as described in claim 3 further comprising:

removing the data block's location from the log file after the copying.

7. The method as described in claim 1 wherein the plurality of data blocks is selected from the group consisting of a file, a file system, and a database.

8. An information handling system comprising:

one or more processors;

a memory accessible by the processors;

one or more nonvolatile storage devices accessible by the processors; and

a data backup tool for backing up data, the data backup tool comprising software code effective to:

initiate a backup, the backup including copying a plurality of data blocks from a first storage area to a second storage area;

receive a first write request during the backup, the first write request corresponding to a data block included in the plurality of data blocks;

determine, during the backup, whether the data block has been copied to the second storage area; and

log, during the backup, the data block's location in response to determining that the data block has been copied.

9. The information handling system as described in claim 8 wherein the software code is further effective to:

retrieve a read progress point, the read progress point corresponding to the progress of the backup; and

compare the read progress point to the data block's location.

10. The information handling system as described in claim 8 wherein the write request results in a changed data block at the data block's location, and wherein the software code is further effective to:

retrieve the data block's location from a log file; and

copy the changed data block to the second storage area.

11. The information handling system as described in claim 10 wherein the software code is further effective to:

receive a second write request, the second write request corresponding to the changed data block;

identify whether the changed data block has been copied to the second storage area; and

duplicate the changed data block in a temporary storage area in response to the identification.

12. The information handling system as described in claim 11 wherein the software code is further effective to:

detect whether the changed data block has been duplicated in the temporary storage area; and

perform the copying using the temporary storage area.

13. The information handling system as described in claim 10 wherein the software code is further effective to:

remove the data block's location from the log file after the copying.

14. A computer program product stored on a computer operable media for backing up data, said computer program product comprising:

means for initiating a backup, the backup including copying a plurality of data blocks from a first storage area to a second storage area;

means for receiving a first write request during the backup, the first write request corresponding to a data block included in the plurality of data blocks;

means for determining, during the backup, whether the data block has been copied to the second storage area; and

means for logging, during the backup, the data block's location in response to determining that the data block has been copied.

15. The computer program product as described in claim 14 wherein the means for determining further comprises:

means for retrieving a read progress point, the read progress point corresponding to the progress of the backup; and

means for comparing the read progress point to the data block's location.

16. The computer program product as described in claim 14 further comprising:

wherein the write request results in a changed data block at the data block's location;

means for retrieving the data block's location from a log file; and

means for copying the changed data block to the second storage area.

17. The computer program product as described in claim 16 further comprising:

means for receiving a second write request, the second write request corresponding to the changed data block;

means for identifying whether the changed data block has been copied to the second storage area; and

means for duplicating the changed data block in a temporary storage area in response to the identification.

18. The computer program product as described in claim 17 further comprising:

means for detecting whether the changed data block has been duplicated in the temporary storage area; and

means for performing the copying using the temporary storage area.

19. The computer program product as described in claim 16 further comprising:

means for removing the data block's location from the log file after the copying.

20. The computer program product as described in claim 14 wherein the plurality of data blocks is selected from the group consisting of a file, a file system, and a database.

Assignments (3)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044127/0735 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2011
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GOOGLE INC.
Reel/Frame 027463/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2003
From: KEOHANE, SUSANN M.; MCBREARTY, GERALD F.; MULLEN, SHAWN P.; MURILLO, JESSICA; SHIEH, JOHNNY M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014208/0031 →