IP Library Granted Patent US 9,009,114
Granted Patent B1
US 9,009,114 · App. 11/262,568 · Granted Apr 14, 2015

Version mapped incremental 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 9,009,114
App. No.
11/262,568
Granted
Apr 14, 2015
Kind
B1
Abstract

A method to create a version map to represent the data state of a file at a particular point in time when an incremental backup is performed. In one embodiment, a logical memory backup file is created that is known as a cumulative data file. Changes to the cumulative data file according to one embodiment of the present invention include periodically appending copies of data modified since the prior backup. A new version map may be created each time an incremental backup occurs. Locations of both modified and unmodified data in the backup data file are mapped for future reference to the data.

Claims (163)

1. A method comprising:

forming a full copy of data available for use by a computer system, wherein the full copy is formed in a logical memory;

creating an initial map, wherein the initial map identifies locations in the logical memory of the full copy and an available storage portion;

storing the initial map in memory;

identifying a modified first portion of the data available for use by the computer system, wherein

the modified first portion comprises data which has been changed since a previous incremental backup operation, and

the modified first portion is based on an original first portion of data stored in the full copy;

adding a copy of the modified first portion to the logical memory;

maintaining the original first portion of data in the full copy unchanged since the forming of the full copy;

creating a first map, wherein

the first map identifies locations in the logical memory of the full copy, and the copy of the modified first portion,

the first map is tracks the location of the modified first portion in relation to the original first portion of data, wherein

the original first portion of data corresponds to the modified first portion, and

the creating the first map comprises

modifying a first extent specifier, wherein

the first extent specifier points to the end of a portion of data in the full copy that precedes the original first portion, in response to the modifying the first extent specifier,

creating a second extent specifier, wherein

the second extent specifier points to a starting address of a subsequent portion of data that follows the original first portion in the full copy, and

creating a third extent specifier, wherein

the third extent specifier points to a starting address of the copy of the first modified portion;

storing the first map in memory;

adding a copy of a modified second portion of the data available for use by the computer system to the logical memory;

creating a second map, wherein

the second map identifies locations in the logical memory of the full copy, the copy of the modified first portion, and the copy of the modified second portion,

the second map comprises a plurality of extent specifiers, and

each extent specifier of the plurality of extent specifiers identifies a portion of the logical memory;

storing the second map in memory, wherein

the initial map, the first map, and the second map are stored concurrently in memory; and

reorganizing the extent specifiers to correspond to an order in which the portions of the logical memory are stored, wherein

the order facilitates restoration of a file using a single, linear pass of a storage medium.

2. The method of claim 1 further comprising:

adding the copy of the modified first portion of the data of the computer system to the logical memory in response to meeting a version creation condition in the computer system, wherein the version creation condition comprises detecting that a predefined amount of time has elapsed since a prior backup operation.

3. The method of claim 1 further comprising:

creating a fourth extent specifier, wherein

the fourth extent specifier is included in the initial map,

the fourth extent specifier points to a starting address of the full copy of the data, and

the fourth extent specifier defines a length of the data in the full copy of the data pointed to by the fourth extent specifier;

creating a fifth extent specifier, wherein

the fifth extent specifier is included in the first map and the second map,

the fifth extent specifier points to a starting address of the copy of the first modified portion, and

the fifth extent specifier defines a length of the data in the copy of the first modified portion; and

creating a sixth extent specifier, wherein

the sixth extent specifier is included in the second map,

the sixth extent specifier points to a starting address of the copy of the second modified portion, and

the sixth extent specifier defines a length of the data in the copy of the second modified portion.

4. The method of claim 3 further comprising:

restoring data from the logical memory, wherein the restoring comprises:

selecting the second map from among a plurality of maps, wherein

each map in the plurality of map represents the data state of a file at a different particular point in time, and

the plurality of maps comprises the first map and the second map;

accessing the second map; and

copying data from the logical memory according to extent specifiers included in the second map.

5. The method of claim 4 wherein restoring data from the logical memory comprises:

retrieving data portions from the logical memory in the order that the data portions appear in the logical memory regardless of whether the retrieved data portions hold the copy of the modified first portion.

6. The method of claim 4 wherein restoring data from the logical memory comprises:

retrieving data portions from the logical memory in the order that the data portions appear in a file being restored.

7. The method of claim 3 , further comprising: reorganizing the first extent specifier, the second extent specifier, and the third extent specifier in the second map.

8. The method of claim 3 , further comprising:

modifying the modified first portion; and

determining that the modified first portion was modified, wherein the adding is performed after the modifying and determining.

9. The method of claim 1 wherein the copy of modified data is added to the logical memory without overwriting the full copy of data in the logical memory.

10. The method of claim 1 wherein the first and second map each comprises an extent specifier that comprises a starting address in the logical memory and a length of data in the logical memory.

11. The method of claim 1 , wherein each extent specifier of the plurality of extent specifiers comprises:

a first operand configured to identify a start location in the logical memory of a respective portion of data;

a second operand configured to identify a length of the respective portion of data; and

a third operand configured to identify a file-relative location.

12. A system comprising:

a processor; and

a storage device coupled to the processor, wherein the storage device comprises a logical memory configured to

store a full copy of data available for use in a computer system,

identify a modified first portion of the data available for use by the computer system, wherein

the modified first portion comprises data which has been changed since a previous incremental backup operation, and

the modified first portion is based on an original first portion of data stored in the full copy;

add a copy of the modified first portion to the logical memory, and

maintain the original first portion of data in the full copy unchanged since the full copy was formed;

add a copy of a modified second portion of the data available for use in the computer system to the logical memory;

a mapping module configured to

create a an initial map, a first map and a second map, wherein

the initial map identifies the locations in the logical memory of the full copy and an available storage portion,

the first map identifies the locations in the logical memory of the full copy and the copy of the modified first portion,

the first map is tracks the location of the modified first portion in relation to the original first portion of data, wherein

the original first portion of data corresponds to the modified first portion,

creating the first map comprises

modifying a first extent specifier, wherein

 the first extent specifier points to the end of a portion of data in the full copy that precedes the original first portion, in response to the modifying the first extent specifier,

creating a second extent specifier, wherein

 the second extent specifier points to a starting address of a subsequent portion of data that follows the original first portion in the full copy, and

creating a third extent specifier, wherein

the third extent specifier points to a starting address of the copy of the first modified portion,

the second map identifies the locations in the logical memory of the full copy, the copy of the modified first portion, and the copy of the modified second portion,

the second map comprises a plurality of extent specifiers, and

each extent specifier of the plurality of extent specifiers identifies a portion of the logical memory; and

a storing module configured to

store the initial map, the first map, and the second map in memory such that the initial map, the first map, and the second map are stored concurrently in memory, and

reorganize the extent specifiers to correspond to an order in which the portions of the logical memory are stored, wherein

the order facilitates restoration of a file using a single, linear pass of the storage device.

13. The system of claim 12 wherein the mapping module is configured to map the locations of the copy of the modified first portion added to the logical memory in response to meeting a version creation condition in the computer system, wherein the version creation condition comprises detecting that a predefined amount of time has elapsed since a prior backup operation.

14. The system of claim 12 wherein the mapping module is enabled to track the locations of both the copy of the modified first portion added to the logical memory and other data portions in the logical memory.

15. The system of claim 12 further comprising a processor configured to restore data portions from the logical memory, wherein the restoring comprises:

selecting the second map from among a plurality of maps, wherein

each map in the plurality of map represents the data state of a file at a different particular point in time, and

the plurality of maps comprises the first map and the second map;

accessing the second map; and

copying data from the logical memory according to extent specifiers included in the second map.

16. The system of claim 15 wherein the processor is further configured to restore data portions from the logical memory, the processor retrieving data portions from the logical memory in the order that the data portions appear in the logical memory regardless of whether the retrieved data portions hold the copy of the modified first portion.

17. The system of claim 12 wherein the first and second map each comprises an extent specifier that comprises a starting address in the logical memory and a length of data in the logical memory.

18. A non-transitory computer readable medium comprising instructions executable by a processor contained in a network switch to implement a method, the method comprising:

forming a full copy of data available for use by a computer system, wherein the full copy is formed in a logical memory;

creating an initial map, wherein the initial map identifies locations in the logical memory of the full copy and an available storage portion;

storing the initial map in memory;

identifying a modified first portion of the data available for use by the computer system, wherein

the modified first portion comprises data which has been changed since a previous incremental backup operation, and

the modified first portion is based on an original first portion of data stored in the full copy;

adding a copy of the modified first portion to the logical memory;

maintaining the original first portion of data in the full copy unchanged since the forming of the full copy;

creating a first map, wherein

the first map identifies the locations in the logical memory of the full copy, the copy of the modified first portion, and an available storage portion,

the first map is tracks the location of the modified first portion in relation to the original first portion of data, wherein

the original first portion of data corresponds to the modified first portion, and

the creating the first map comprises

modifying a first extent specifier, wherein

the first extent specifier points to the end of a portion of data in the full copy that precedes the original first portion, in response to the modifying the first extent specifier,

creating a second extent specifier, wherein

the second extent specifier points to a starting address of a subsequent portion of data that follows the original first portion in the full copy, and

creating a third extent specifier, wherein

the third extent specifier points to a starting address of the copy of the first modified portion;

storing the first map in memory;

adding a copy of a modified second portion of the data available for use by the computer system to the logical memory;

creating a second map, wherein

the second map identifies locations in the logical memory of the full copy, the copy of the modified first portion, and the copy of the modified second portion,

the second map comprises a plurality of extent specifiers, and

each extent specifier of the plurality of extent specifiers identifies a portion of the logical memory;

storing the second map in memory, wherein

the initial map, the first map, and the second map are stored concurrently in memory; and

reorganizing the extent specifiers to correspond to an order in which the portions of the logical memory are stored, wherein

the order facilitates restoration of a file using a single, linear pass of a storage medium.

19. The non-transitory computer readable medium of claim 18 further comprising:

adding the copy of the modified first portion of the data of the computer system to the logical memory in response to meeting a version creation condition in the computer system, wherein the version creation condition comprises detecting that a predefined amount of time has elapsed since a prior backup operation.

20. The non-transitory computer readable medium of claim 18 further comprising:

creating a fourth extent specifier, wherein

the fourth extent specifier is included in the initial map,

the fourth extent specifier points to a starting address of the full copy of the data, and

the fourth extent specifier defines a length of the data in the full copy of the data pointed to by the fourth extent specifier;

creating a fifth extent specifier, wherein

the fifth extent specifier is included in the first map and the second map,

the fifth extent specifier points to a starting address of the copy of the first modified portion, and

the fifth extent specifier defines a length of the data in the copy of the first modified portion; and

creating a sixth extent specifier, wherein

the sixth extent specifier is included in the second map,

the sixth extent specifier points to a starting address of the copy of the second modified portion, and

the sixth extent specifier defines a length of the data in the copy of the second modified portion.

21. The non-transitory computer readable medium of claim 18 further comprising:

restoring data from the logical memory, wherein the restoring comprises:

selecting the second map from among a plurality of maps, wherein

each map in the plurality of map represents the data state of a file at a different particular point in time, and

the plurality of maps comprises the first map and the second map;

accessing the second map; and

copying data from the logical memory according to extent specifiers included in the second map.

22. The non-transitory computer readable medium of claim 21 wherein restoring data from the logical memory comprises:

retrieving data portions from the logical memory in the order that the data portions appear in the logical memory regardless of whether the retrieved data portions hold the copy of the modified first portion.

23. The non-transitory computer readable medium of claim 21 wherein restoring data from the logical memory comprises:

retrieving data portions from the logical memory in the order that the data portions appear in a file being restored.

24. The non-transitory computer readable medium of claim 18 wherein the first and second map each comprises an extent specifier that comprises a starting address in the logical memory and a length of data in the logical memory.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2005
From: SRIDHARAN, SRINEET
To: VERITAS OPERATING CORPORATION
Reel/Frame 017180/0901 →