IP Library Granted Patent US 7,516,286
Granted Patent B1
US 7,516,286 · App. 11/216,810 · Granted Apr 7, 2009

Conversion between full-data and space-saving snapshots

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 7,516,286
App. No.
11/216,810
Granted
Apr 7, 2009
Kind
B1
Abstract

A method, system, computer system, and computer-readable medium that enable a copy of data to be converted from a full-data snapshot to a space-saving snapshot, or vice versa, while retaining all the contents of the snapshot. Full-data snapshots can be used for efficient read operations and off-host processing operations. Space-saving snapshots can be used to store multiple copies of primary data in a minimum amount of storage space without consuming unnecessary storage space to store duplicate copies of data that are not changing. The ability to convert between full-data and space-saving snapshots enables organizational storage, backup, and recovery needs to be met using the best type of snapshot for a given operation.

Claims (99)

1. A method comprising:

converting between a full-data snapshot and a space-saving snapshot, wherein

the full-data snapshot comprises memory to store data for each region of a plurality of regions of primary data, and

the space-saving snapshot comprises memory to store data for each changed region of the plurality of regions of the primary data, wherein

memory to store data for a first region of the plurality of regions is allocated to the space-saving snapshot in response to a change to the primary data in the first region, and

no memory is allocated to the space-saving snapshot for a second region of the plurality of regions if no change to the primary data in the second region occurs.

2. The method of claim 1 wherein

converting from the full-data snapshot to the space-saving snapshot comprises:

identifying a first set of regions of the plurality of regions, wherein

each region in the first set has primary data that have changed since a point in time;

allocating memory in the space-saving snapshot for each region in the first set of regions; and

copying an original value for the primary data of each region in the first set of regions from the full-data snapshot to the space-saving snapshot.

3. The method of claim 2 further comprising:

identifying a second set of regions of the primary data, wherein

each region in the second set has primary data that have not changed since the point in time; and

freeing memory previously allocated for the second set of regions in the full-data snapshot.

4. The method of claim 2 further comprising:

marking each region in the space-saving snapshot as valid in the full-data snapshot; and

after each region in the space-saving snapshot is marked in the full-data snapshot,

marking each unmarked region in the full-data snapshot as invalid in the full-data snapshot.

5. The method of claim 1 wherein converting from the space-saving snapshot to the full-data snapshot comprises:

allocating memory to store the primary data to the full-data snapshot;

saving valid data from the space-saving snapshot in the full-data snapshot; and

copying data for regions with no data in the space-saving snapshot from a parent of the space-saving snapshot to the full-data snapshot.

6. The method of claim 5 further comprising:

constructing the full-data snapshot as an instant full-data snapshot by performing the following:

after the valid data are saved in the full-data snapshot, making the full-data snapshot available; and

performing the copying of the data for the regions with no data from the parent into the full-data snapshot while the full-data snapshot is available.

7. The method of claim 5 wherein

the parent of the space-saving snapshot comprises the primary data.

8. The method of claim 5 further comprising:

marking each region in the full-data snapshot as valid.

9. A computer-readable storage medium comprising:

converting instructions, executable by a processor, and configured to convert between a full-data snapshot and a space-saving snapshot, wherein

the full-data snapshot comprises memory to store data for each region of a plurality of regions of primary data, and

the space-saving snapshot comprises memory to store data for each changed region of the plurality of regions of the primary data, wherein

memory to store data for a first region of the plurality of regions is allocated to the space-saving snapshot in response to a change to the primary data in the first region, and

no memory is allocated to the space-saving snapshot for a second region of the plurality of regions if no change to the primary data in the second region occurs.

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

first converting instructions, executable by the processor, and configured to convert from the full-data snapshot to the space-saving snapshot, wherein the first instructions comprise:

identifying instructions, executable by the processor, and configured to identify a first set of regions of the plurality of regions, wherein

each region in the first set has primary data that have changed since a point in time;

allocating instructions, executable by the processor, and configured to allocate memory in the space-saving snapshot for each region in the first set of regions; and

copying instructions, executable by the processor, and configured to copy an original value for the primary data of each region in the first set of regions from the full-data snapshot to the space-saving snapshot.

11. The computer-readable storage medium of claim 10 further comprising:

second identifying instructions, executable by the processor, and configured to identify a second set of regions of the primary data, wherein

each region in the second set has primary data that have not changed since the point in time; and

freeing instructions, executable by the processor, and configured to free memory previously allocated for the second set of regions in the full-data snapshot.

12. The computer-readable storage medium of claim 9 further comprising:

first marking instructions, executable by the processor, and configured to mark each region in the space-saving snapshot as valid in the full-data snapshot; and

second marking instructions, executable by the processor, and configured to perform the following:

after each region in the space-saving snapshot is marked in the full-data snapshot, mark each unmarked region in the full-data snapshot as invalid in the full-data snapshot.

13. The computer-readable storage medium of claim 9 further comprising:

second converting instructions, executable by the processor, and configured to convert from the space-saving snapshot to the full-data snapshot, wherein the second instructions comprise:

allocating instructions, executable by the processor, and configured to allocate memory to store the primary data to the full-data snapshot;

saving instructions, executable by the processor, and configured to save valid data from the space-saving snapshot in the full-data snapshot; and

copying instructions, executable by the processor, and configured to copy data for regions with no data in the space-saving snapshot from a parent of the space-saving snapshot to the full-data snapshot.

14. The computer-readable storage medium of claim 13 further comprising:

constructing instructions, executable by the processor, and configured to construct the full-data snapshot as an instant full-data snapshot by performing the following:

after the valid data are saved in the full-data snapshot, making the full-data snapshot available; and

performing the copying of the data for the regions with no data from the parent into the full-data snapshot while the full-data snapshot is available.

15. The computer-readable storage medium of claim 13 wherein the parent of the space-saving snapshot comprises the primary data.

16. The computer-readable storage medium of claim 13 further comprising:

marking instructions, executable by the processor, and configured to mark each region in the full-data snapshot as valid.

17. A system comprising:

first converting means for converting between a full-data snapshot and a space-saving snapshot, wherein

the full-data snapshot comprises memory to store data for each region of a plurality of regions of primary data, and

the space-saving snapshot comprises memory to store data for each changed region of the plurality of regions of the primary data, wherein

memory to store data for a first region of the plurality of regions is allocated to the space-saving snapshot in response to a change to the primary data in the first region, and

no memory is allocated to the space-saving snapshot for a second region of the plurality of regions if no change to the primary data in the second region occurs; and

second converting means for converting from the full-data snapshot to the space-saving snapshot.

18. The system of claim 17 , wherein the second converting means comprise:

identifying instructions to identify a first set of regions of the plurality of regions, wherein

each region in the first set has primary data that have changed since a point in time;

allocating instructions to allocate memory in the space-saving snapshot for each region in the first set of regions; and

copying instructions to copy an original value for the primary data of each region in the first set of regions from the full-data snapshot to the space-saving snapshot.

19. The system of claim 17 further comprising:

third converting means for converting from the space-saving snapshot to the full-data snapshot.

20. The system of claim 19 , wherein the third converting means comprise:

allocating means for allocating memory to store the primary data to the full-data snapshot;

saving means for saving valid data from the space-saving snapshot in the full-data snapshot; and

copying means for copying data for regions with no data in the space-saving snapshot from a parent of the space-saving snapshot to the full-data snapshot.

21. A system comprising:

a converting module to convert between a full-data snapshot and a space-saving snapshot, wherein

the full-data snapshot comprises memory to store data for each region of a plurality of regions of primary data, and

the space-saving snapshot comprises memory to store data for each changed region of the plurality of regions of the primary data, wherein

memory to store data for a first region of the plurality of regions is allocated to the space-saving snapshot in response to a change to the primary data in the first region, and

no memory is allocated to the space-saving snapshot for a second region of the plurality of regions if no change to the primary data in the second region occurs.

22. The system of claim 21 further comprising:

a second converting module to convert from the full-data snapshot to the space-saving snapshot, wherein the second converting module comprises:

identifying instructions to identify a first set of regions of the plurality of regions, wherein

each region in the first set has primary data that have changed since a point in time;

allocating instructions to allocate memory in the space-saving snapshot for each region in the first set of regions; and

copying instructions to copy an original value for the primary data of each region in the first set of regions from the full-data snapshot to the space-saving snapshot.

23. The system of claim 21 further comprising:

a second converting module to convert from the space-saving snapshot to the full-data snapshot, wherein the second converting module comprises:

allocating instructions to allocate memory to store the primary data to the full-data snapshot;

saving instructions to save valid data from the space-saving snapshot in the full-data snapshot; and

copying instructions to copy data for regions with no data in the space-saving snapshot from a parent of the space-saving snapshot to the full-data snapshot.

Assignments (14)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2005
From: DALAL, CHIRAG DEEPAK; PENDHARKAR, NIRANJAN S.
To: VERITAS OPERATING CORPORATION
Reel/Frame 016946/0650 →