IP Library Granted Patent US 11,768,622
Granted Patent B2
US 11,768,622 · App. 17/107,229 · Granted Sep 26, 2023

Differential snapshot without array support

Inventor: Thomas L. Watson (Richardson, TX)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/064G06F3/067G06F3/0619G06F3/0644G06F3/0647G06F21/602H04L9/0643
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 11,768,622
App. No.
17/107,229
Granted
Sep 26, 2023
Kind
B2
Abstract

Methods, apparatus, and processor-readable storage media for implementing differential snapshots without array support are provided herein. An example computer-implemented method includes determining whether one or more of a plurality of data blocks in a first snapshot of a storage volume have changed relative to a plurality of data blocks in a second snapshot of the storage volume; generating a respective data structure for each of the plurality of data blocks in the first snapshot, wherein the data structure comprises data content of the corresponding data block of the first snapshot only if the corresponding data block has changed relative to the second snapshot; and transmitting the data structures to a remote storage system, wherein the remote storage system generates a copy of the first snapshot based at least in part on the data structures.

Claims (54)

1. A computer-implemented method comprising:

determining whether one or more of a plurality of data blocks in a first snapshot of a storage volume have changed relative to a plurality of data blocks in a second snapshot of the storage volume, wherein the determining comprises: computing a first set of hash values based on the plurality of data blocks in the first snapshot; and comparing the first set of hash values to a second set of hash values previously computed based on the plurality of data blocks in the second snapshot, wherein the second set of hash values is stored in an output file that is generated by a first storage system when transmitting data structures corresponding to at least some of the plurality of data blocks in the second snapshot to a remote storage system;

generating a respective further data structure for each of the plurality of data blocks in the first snapshot, wherein each of the further data structures comprises a data array field, and wherein the data array field comprises data content of the corresponding data block of the first snapshot only if the corresponding data block has changed relative to the second snapshot; and

transmitting the further data structures to the remote storage system, wherein the remote storage system generates a copy of the first snapshot based at least in part on the further data structures;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

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

storing the output file at the first storage system separately from the data content of the plurality of data blocks in the first snapshot and the plurality of data blocks in the second snapshot.

3. The computer-implemented method of claim 1 , wherein said comparing comprises:

determining that a given hash value in the first set is equal to a corresponding hash value in the second set; and

obtaining a first data block associated with the given hash value from the first snapshot and a second data block associated with the corresponding hash value from the second snapshot to determine whether the first data block has changed.

4. The computer-implemented method of claim 1 , wherein the first set of hash values and the second set of hash values are computed using a secure hash algorithm.

5. The computer-implemented method of claim 1 , wherein each of the further data structures further comprises at least one of:

a length field;

an offset field; and

a hash field.

6. The computer-implemented method of claim 5 , wherein said generating comprises:

in response to determining that a given one of the data blocks in the first snapshot has not changed relative to the second snapshot, setting the length field of the corresponding further data structure to indicate to the remote storage system that no data content is being transmitted.

7. The computer-implemented method of claim 1 , wherein said transmitting comprises at least one of:

encrypting at least a portion of each of the generated further data structures; and

compressing at least a portion of each of the generated further data structures.

8. The computer-implemented method of claim 1 , wherein the second snapshot is generated at an earlier time than the first snapshot.

9. The computer-implemented method of claim 1 , wherein the copy of the first snapshot is generated by the remote storage system further based on a copy of the second snapshot stored on the remote storage system and the transmitted further data structures.

10. A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:

to determine whether one or more of a plurality of data blocks in a first snapshot of a storage volume have changed relative to a plurality of data blocks in a second snapshot of the storage volume, wherein the determining comprises: computing a first set of hash values based on the plurality of data blocks in the first snapshot; and comparing the first set of hash values to a second set of hash values previously computed based on the plurality of data blocks in the second snapshot, wherein the second set of hash values is stored in an output file that is generated by a first storage system when transmitting data structures corresponding to at least some of the plurality of data blocks in the second snapshot to a remote storage system;

to generate a respective further data structure for each of the plurality of data blocks in the first snapshot, wherein each of the further data structures comprises a data array field, and wherein the data array field comprises data content of the corresponding data block of the first snapshot only if the corresponding data block has changed relative to the second snapshot; and

to transmit the further data structures to the remote storage system, wherein the remote storage system generates a copy of the first snapshot based at least in part on the further data structures.

11. The non-transitory processor-readable storage medium of claim 10 , wherein the program code when executed by the at least one processing device causes the at least one processing device:

to store the output file at the first storage system separately from the data content of the plurality of data blocks in the first snapshot and the plurality of data blocks in the second snapshot.

12. The non-transitory processor-readable storage medium of claim 10 , wherein said comparing comprises:

determining that a given hash value in the first set is equal to a corresponding hash value in the second set; and

obtaining a first data block associated with the given hash value from the first snapshot and a second data block associated with the corresponding hash value from the second snapshot to determine whether the first data block has changed.

13. The non-transitory processor-readable storage medium of claim 10 , wherein the first set of hash values and the second set of hash values are computed using a secure hash algorithm.

14. The non-transitory processor-readable storage medium of claim 10 , wherein each of the further data structures further comprises at least one of:

a length field;

an offset field; and

a hash field.

15. The non-transitory processor-readable storage medium of claim 14 , wherein said generating comprises:

in response to determining that a given one of the data blocks in the first snapshot has not changed relative to the second snapshot, setting the length field of the corresponding further data structure to indicate to the remote storage system that no data content is being transmitted.

16. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to determine whether one or more of a plurality of data blocks in a first snapshot of a storage volume have changed relative to a plurality of data blocks in a second snapshot of the storage volume, wherein the determining comprises: computing a first set of hash values based on the plurality of data blocks in the first snapshot; and comparing the first set of hash values to a second set of hash values previously computed based on the plurality of data blocks in the second snapshot, wherein the second set of hash values is stored in an output file that is generated by a first storage system when transmitting data structures corresponding to at least some of the plurality of data blocks in the second snapshot to a remote storage system;

to generate a respective further data structure for each of the plurality of data blocks in the first snapshot, wherein each of the further data structures comprises a data array field, and wherein the data array field comprises data content of the corresponding data block of the first snapshot only if the corresponding data block has changed relative to the second snapshot; and

to transmit the further data structures to the remote storage system, wherein the remote storage system generates a copy of the first snapshot based at least in part on the further data structures.

17. The apparatus of claim 16 , wherein the at least one processing device is further configured:

to store the output file at the first storage system separately from the data content of the plurality of data blocks in the first snapshot and the plurality of data blocks in the second snapshot.

18. The apparatus of claim 17 , wherein said comparing comprises:

determining that a given hash value in the first set is equal to a corresponding hash value in the second set; and

obtaining a first data block associated with the given hash value from the first snapshot and a second data block associated with the corresponding hash value from the second snapshot to determine whether the first data block has changed.

19. The apparatus of claim 17 , wherein the first set of hash values and the second set of hash values are computed using a secure hash algorithm.

20. The apparatus of claim 16 , wherein each of the further data structures further comprises at least one of:

a length field;

an offset field; and

a hash field.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2020
From: WATSON, THOMAS L.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054494/0071 →
Continuity (1)
Related Publication 20220171536A1 · Jun 2, 2022