IP Library Granted Patent US 10,210,013
Granted Patent B1
US 10,210,013 · App. 15/199,002 · Granted Feb 19, 2019

Systems and methods for making snapshots available

Inventors: Suhas Dantkale (Sunnyvale, CA); Rakesh Ranjan (Cupertino, CA); Vivek Agrawal (Cupertino, CA)
Assignee: Veritas Technologies LLC
G06F9/45558G06F17/30088G06F2009/45562G06F2009/45579G06F2009/45583
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 10,210,013
App. No.
15/199,002
Granted
Feb 19, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for making snapshots available may include (i) identifying a writeback log that records input/output operations of a compute node within a high-availability environment, (ii) placing, in the writeback log, a marker that indicates a start of a snapshot to be stored on a data node, (iii) marking, after placing the marker and before all data within the snapshot has been transferred to the data node, the snapshot as available, (iv) receiving, from an additional compute node, a request to read from the snapshot, and (v) sending, from the compute node to the additional compute node, metadata indicating which portion of data from the snapshot is stored on the data node and which portion of the data from the snapshot is not stored on the data node but is stored in the writeback log. Various other methods, systems, and computer-readable media are also disclosed.

Claims (63)

1. A computer-implemented method for making snapshots available, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a writeback log that records input/output operations of a compute node within a high-availability environment;

placing, in the writeback log, a marker that indicates a start of a snapshot to be stored on a data node;

marking, after placing the marker and before all data within the snapshot has been transferred to the data node, the snapshot as available to be read by an additional compute node in the high-availability environment;

receiving, from the additional compute node, a request to read from the snapshot;

sending, from the compute node to the additional compute node, metadata indicating which portion of data from the snapshot is stored on the data node and which portion of the data from the snapshot is not stored on the data node but is stored in the writeback log;

issuing, by a controller node, a virtual disk creation command to create a virtual disk hosted by the additional compute node;

receiving, by the controller node, a unique identifier of the snapshot, an identifier of the compute node, and an identifier of the additional compute node;

requesting, by the additional compute node, the metadata from the compute node;

receiving, by the additional compute node, the metadata from the compute node;

updating, by the additional compute node, an extent map for the virtual disk that, for each portion of data from the snapshot, stores a location of the portion of data; and

marking, in response to the additional compute node updating the extent map, the virtual disk creation command as completed.

2. The computer-implemented method of claim 1 , further comprising:

receiving, at the compute node, a read request for data within the portion of the data from the snapshot that is not stored on the data node but is stored in the writeback log; and

sending, from the compute node to the additional compute node, the data requested by the read request that is stored in the writeback log.

3. The computer-implemented method of claim 1 , further comprising transferring, from the compute node to the additional compute node, the portion of the data from the snapshot that is not stored on the data node but is stored in the writeback log.

4. The computer-implemented method of claim 1 , wherein the snapshot comprises a snapshot of a virtual machine.

5. The computer-implemented method of claim 1 , further comprising:

detecting that all of the data from the snapshot is now stored on the data node; and

deleting the writeback log.

6. The computer-implemented method of claim 1 , wherein the additional compute node comprises the compute node.

7. A system for making snapshots available, the system comprising:

an identification module, stored in memory, that identifies a writeback log that records input/output operations of a compute node within a high-availability environment;

a placing module, stored in memory, that places, in the writeback log, a marker that indicates a start of a snapshot to be stored on a data node;

a marking module, stored in memory, that marks, after placing the marker and before all data within the snapshot has been transferred to the data node, the snapshot as available to be read by an additional compute node in the high-availability environment;

a receiving module, stored in memory, that receives, from the additional compute node, a request to read from the snapshot;

a sending module, stored in memory, that sends, from the compute node to the additional compute node, metadata indicating which portion of data from the snapshot is stored on the data node and which portion of the data from the snapshot is not stored on the data node but is stored in the writeback log;

a virtual disk creation module, stored in memory, that:

issues, by a controller node, a virtual disk creation command to create a virtual disk hosted by the additional compute node;

receives, by the controller node, a unique identifier of the snapshot, an identifier of the compute node, and an identifier of the additional compute node;

requests, by the additional compute node, the metadata from the compute node; receives, by the additional compute node, the metadata from the compute node;

updates, by the additional compute node, an extent map for the virtual disk that, for each portion of data from the snapshot, stores a location of the portion of data; and

marks, in response to the additional compute node updating the extent map, the virtual disk creation command as completed; and

at least one physical processor configured to execute the identification module, the placing module, the marking module, the receiving module, and the sending module.

8. The system of claim 7 , further comprising:

the receiving module receives, at the compute node, a read request for data within the portion of the data from the snapshot that is not stored on the data node but is stored in the writeback log; and

the sending module sends, from the compute node to the additional compute node, the data requested by the read request that is stored in the writeback log.

9. The system of claim 7 , wherein the sending module transfers, from the compute node to the additional compute node, the portion of the data from the snapshot that is not stored on the data node but is stored in the writeback log.

10. The system of claim 7 , wherein the snapshot comprises a snapshot of a virtual machine.

11. The system of claim 7 , wherein the marking module:

detects that all of the data from the snapshot is now stored on the data node; and

deletes the writeback log.

12. The system of claim 7 , wherein the additional compute node comprises the compute node.

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

identify a writeback log that records input/output operations of a compute node within a high-availability environment;

place, in the writeback log, a marker that indicates a start of a snapshot to be stored on a data node;

mark, after placing the marker and before all data within the snapshot has been transferred to the data node, the snapshot as available to be read by an additional compute node in the high-availability environment;

receive, from the additional compute node, a request to read from the snapshot;

send, from the compute node to the additional compute node, metadata indicating which portion of data from the snapshot is stored on the data node and which portion of the data from the snapshot is not stored on the data node but is stored in the writeback log;

issue, by a controller node, a virtual disk creation command to create a virtual disk hosted by the additional compute node;

receive, by the controller node, a unique identifier of the snapshot, an identifier of the compute node, and an identifier of the additional compute node;

request, by the additional compute node, the metadata from the compute node;

receive, by the additional compute node, the metadata from the compute node;

update, by the additional compute node, an extent map for the virtual disk that, for each portion of data from the snapshot, stores a location of the portion of data; and

mark, in response to the additional compute node updating the extent map, the virtual disk creation command as completed.

14. The non-transitory computer-readable medium of claim 13 , wherein the one or more computer-readable instructions cause the computing device to:

receive, at the compute node, a read request for data within the portion of the data from the snapshot that is not stored on the data node but is stored in the writeback log; and

send, from the compute node to the additional compute node, the data requested by the read request that is stored in the writeback log.

15. The non-transitory computer-readable medium of claim 13 , wherein the one or more computer-readable instructions cause the computing device to transfer, from the compute node to the additional compute node, the portion of the data from the snapshot that is not stored on the data node but is stored in the writeback log.

16. The non-transitory computer-readable medium of claim 13 , wherein the snapshot comprises a snapshot of a virtual machine.

17. The non-transitory computer-readable medium of claim 13 , wherein the one or more computer-readable instructions cause the computing device to:

detect that all of the data from the snapshot is now stored on the data node; and

delete the writeback log.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
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 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069632/0613 →
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 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2016
From: DANTKALE, SUHAS; RANJAN, RAKESH; AGRAWAL, VIVEK
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 039058/0755 →