IP Library Granted Patent US 9,158,781
Granted Patent B1
US 9,158,781 · App. 11/392,382 · Granted Oct 13, 2015

Version mapped incremental backups with version creation condition

Inventor: Srineet Sridharan (Pune, IN)
Assignee: Symantec Operating Corporation
G06F17/30082G06F11/1448
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,158,781
App. No.
11/392,382
Filed
Mar 29, 2006
Granted
Oct 13, 2015
Kind
B1
Art Unit
OPESS
USPC
707/204
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 appending copies of modified data when the modified data meets a certain condition. 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 (58)

1. A method comprising:

modifying a first portion of data available for use by a computer system;

determining whether the first portion of data is high priority data or is not high priority data;

if the determining indicates that the first portion of data is high priority data

adding to a memory, in response to the determining, a copy of the modified first portion of data available for use by the computer system, wherein

the memory comprises the copy of the modified first portion and a copy of data available for use by the computer system, and

adding, to a first map of a plurality of version maps, information identifying the copy of the modified first portion, wherein

each map of the plurality of version maps identifies contents of the memory at a respective time;

if the determining indicates that the first portion of data is not high priority data

preventing, in response to the determining, a copy of the modified first portion of data from being added to the memory;

creating a first extent specifier to point to a location in the memory where data of a particular copied portion is stored, and to define a length of the data that is included in the particular copied portion pointed to by the first extent specifier, wherein the first extent specifier comprises a starting address for the particular copied portion and the length of data in the particular copied portion; and

creating a second extent specifier to point to a starting address of the copy of the data available for use by the computer system, and to define a length of data in the copy of the data pointed to by the second extent specifier.

2. The method of claim 1 further comprising:

restoring data from the memory according to the plurality of version maps.

3. The method of claim 2 wherein restoring data from the memory comprises:

retrieving mapped data portions from the memory in an order that the mapped data portions appear in the memory.

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

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

5. The method of claim 1 , wherein

the each map of the plurality of version maps comprises extent information.

6. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to:

modify a first portion of data available for use by a computer system;

determine whether the first portion of data is high priority data or is not high priority data;

if determining priority of the first portion of data indicates that the first portion of data is high priority data

add to a memory, in response to the determining, a copy of the modified first portion of data available for use by the computer system, wherein

the memory comprises the copy of the modified first portion and a copy of data available for use by the computer system, and

add, to a first map of a plurality of version maps, information identifying the copy of the modified first portion, wherein

each map of the plurality of version maps identifies contents of the memory at a respective time;

if the determining indicates that the first portion of data is not high priority data

prevent, in response to the determining, a copy of the modified first portion of data from being added to the memory;

create a first extent specifier to point to a location in the memory where data of a particular copied portion is stored, and to define a length of the data that is included in the particular copied portion pointed to by the first extent specifier, wherein the first extent specifier comprises a starting address for the particular copied portion and the length of data in the particular copied portion; and

create a second specifier to point to a starting address of the copy of the data available for use by the computer system, and to define a length of data in the copy of the data pointed to by the second extent specifier.

7. The system of claim 6 , wherein the program instructions are further executable to:

restore data from the memory according to the version plurality of maps.

8. The system of claim 7 , wherein restoring data from the memory comprises:

retrieving mapped data portions from the memory in an order that the mapped data portions appear in the memory.

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

modifying a first portion of data available for use by a computer system;

determining whether the first portion of data is high priority data or is not high priority data;

if the determining indicates that the first portion of data is high priority data

adding to a memory, in response to the determining, a copy of the modified first portion of data available for use by the computer system, wherein

the memory comprises the copy of the modified first portion and a copy of data available for use by the computer system, and

adding, to a first map of a plurality of version maps, information identifying the copy of the modified first portion, wherein

each map of the plurality of version maps identifies contents of the memory at a respective time;

if the determining indicates that the first portion of data is not high priority data

preventing, in response to the determining, a copy of the modified first portion of data from being added to the memory;

creating a first extent specifier to point to a location in the memory where data of a particular copied portion is stored, and to define a length of the data that is included in the particular copied portion pointed to by the first extent specifier, wherein the first extent specifier comprises a starting address for the particular copied portion and the length of data in the particular copied portion; and

creating a second specifier to point to a starting address of the copy of the data available for use by the computer system, and to define a length of data in the copy of the data pointed to by the second extent specifier.

10. The computer readable medium of claim 9 further comprising:

restoring data from the memory according to the plurality of version maps.

11. The computer readable medium of claim 10

wherein restoring data from the memory comprises:

retrieving mapped data portions from the memory in an order that the mapped data portions appear in the memory.

12. The computer readable medium of claim 10

wherein restoring data from the memory comprises:

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

Assignments (13)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
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 →
Continuity (1)
Continuation 11262568 · Oct 31, 2005