IP Library Granted Patent US 9,405,709
Granted Patent B1
US 9,405,709 · App. 13/672,626 · Granted Aug 2, 2016

Systems and methods for performing copy-on-write operations

Inventors: Ajay Salpekar (Hayward, CA); Balemurughan Kumaresan (Cupertino, CA); Darshan Joshi (Fremont, CA)
Assignee: Veritas Technologies LLC
G06F12/16G06F11/00G06F11/16
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,405,709
App. No.
13/672,626
Granted
Aug 2, 2016
Kind
B1
Abstract

A computer-implemented method for performing copy-on-write operations may include (1) identifying a write operation addressed to at least a part of a storage area on a storage system, (2) determining that the storage area is configured to be copied before writing to the storage area in order to preserve original data stored within the storage area, (3) identifying an interface for offloading copy-on-write operations to the storage system, and (4) using the interface to instruct the storage system to create a copy of the storage area modified with the write operation. Various other methods, systems, and computer-readable media are also disclosed.

Claims (59)

1. A computer-implemented method for performing copy-on-write operations, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a write operation addressed to at least a part of a storage area on a storage system, the write operation comprising a block-level write operation;

determining that the storage area falls within a snapshot and that, therefore, the entire storage area is configured to be copied as a chunk before writing to the storage area in order to preserve original data stored within the storage area, wherein a chunk size encompassing the entire storage area is larger than a size of the block-level write operation;

identifying an interface for offloading copy-on-write operations to the storage system;

using the interface, in response to identifying the block-level write operation, to instruct the storage system to create a copy of the storage area before the storage area is modified with the write operation.

2. The computer-implemented method of claim 1 , wherein using the interface comprises:

specifying to the storage system an offset of the write operation within the storage area;

passing a buffer comprising a content of the write operation to the storage system.

3. The computer-implemented method of claim 1 , wherein using the interface comprises:

specifying to the storage system a location of the storage area;

specifying to the storage system a target location at which to create the copy of the storage area modified with the write operation;

specifying to the storage area a size of the storage area;

specifying to the storage system an offset of the write operation within the storage area;

passing a buffer comprising a content of the write operation to the storage system.

4. The computer-implemented method of claim 1 , wherein the interface comprises an interface between the storage system and a mapping layer that maps logical data locations to physical data locations on the storage system.

5. The computer-implemented method of claim 4 , wherein using the interface comprises instructing the storage system to create the copy of the storage area modified with the write operation without passing data within the storage area from the storage system to the mapping layer.

6. The computer-implemented method of claim 1 , wherein the interface comprises an interface between the storage system and at least one of:

a file system;

a database.

7. The computer-implemented method of claim 1 , wherein determining that the storage area is configured to be copied before writing to the storage area in order to preserve original data stored within the storage area comprises determining that the storage area comprises deduplicated data.

8. A system for performing copy-on-write operations, the system comprising:

an identification module programmed to identify a write operation addressed to at least a part of a storage area on a storage system, the write operation comprising a block-level write operation;

a determination module programmed to determine that the storage area falls within a snapshot and that, therefore, the entire storage area is configured to be copied as a chunk before writing to the storage area in order to preserve original data stored within the storage area, wherein a chunk size encompassing the entire storage area is larger than a size of the block-level write operation;

an interface module programmed to identify an interface for offloading copy-on-write operations to the storage system;

an instruction module programmed to use the interface, in response to identifying the block-level write operation, to instruct the storage system to create a copy of the storage area before the storage area is modified with the write operation;

at least one processor configured to execute the identification module, the determination module, the interface module, and the instruction module.

9. The system of claim 8 , wherein the instruction module is programmed to use the interface by:

specifying to the storage system an offset of the write operation within the storage area;

passing a buffer comprising a content of the write operation to the storage system.

10. The system of claim 8 , wherein the instruction module is programmed to use the interface by:

specifying to the storage system a location of the storage area;

specifying to the storage system a target location at which to create the copy of the storage area modified with the write operation;

specifying to the storage area a size of the storage area;

specifying to the storage system an offset of the write operation within the storage area;

passing a buffer comprising a content of the write operation to the storage system.

11. The system of claim 8 , wherein the interface comprises an interface between the storage system and a mapping layer that maps logical data locations to physical data locations on the storage system.

12. The system of claim 11 , wherein using the interface comprises instructing the storage system to create the copy of the storage area modified with the write operation without passing data within the storage area from the storage system to the mapping layer.

13. The system of claim 8 , wherein the interface comprises an interface between the storage system and at least one of:

a file system;

a database.

14. The system of claim 8 , wherein the determination module is programmed to determine that the storage area is configured to be copied before writing to the storage area in order to preserve original data stored within the storage area by determining that the storage area comprises deduplicated data.

15. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a write operation addressed to at least a part of a storage area on a storage system, the write operation comprising a block-level write operation;

determine that the storage area falls within a snapshot and that, therefore, the entire storage area is configured to be copied as a chunk before writing to the storage area in order to preserve original data stored within the storage area, wherein a chunk size encompassing the entire storage area is larger than a size of the block-level write operation;

identify an interface for offloading copy-on-write operations to the storage system;

use the interface, in response to identifying the block-level write operation, to instruct the storage system to create a copy of the storage area before the storage area is modified with the write operation.

16. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-executable instructions cause the computing device to use the interface by causing the computing device to:

specify to the storage system an offset of the write operation within the storage area;

pass a buffer comprising a content of the write operation to the storage system.

17. The non-transitory computer-readable medium of claim 15 , wherein using the interface comprises:

specifying to the storage system a location of the storage area;

specifying to the storage system a target location at which to create the copy of the storage area modified with the write operation;

specifying to the storage area a size of the storage area;

specifying to the storage system an offset of the write operation within the storage area;

passing a buffer comprising a content of the write operation to the storage system.

18. The non-transitory computer-readable medium of claim 15 , wherein the interface comprises an interface between the storage system and a mapping layer that maps logical data locations to physical data locations on the storage system.

19. The non-transitory computer-readable medium of claim 18 , wherein using the interface comprises instructing the storage system to create the copy of the storage area modified with the write operation without passing data within the storage area from the storage system to the mapping layer.

20. The computer-implemented method of claim 1 , wherein:

the size of the block-level write operation corresponds to a block size of the block-level write operation.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075728/0466 →
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 Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
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 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2012
From: SALPEKAR, AJAY; KUMARESAN, BALEMURUGHAN; JOSHI, DARSHAN
To: SYMANTEC CORPORATION
Reel/Frame 029267/0581 →
Continuity (1)
Provisional Application 61682431 · Aug 13, 2012