IP Library Granted Patent US 11,579,983
Granted Patent B2
US 11,579,983 · App. 17/152,169 · Granted Feb 14, 2023

Snapshot performance optimizations

Inventors: Nagapraveen Veeravenkata Seela (Cary, NC); Alan L. Taylor (Cary, NC); Nagasimha G. Haravu (Apex, NC); Michael C. Brundage (Cary, NC)
Assignee: EMC IP Holding Company LLC
G06F11/1461G06F11/1451G06F11/1464G06F16/128G06F16/1844
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,579,983
App. No.
17/152,169
Granted
Feb 14, 2023
Kind
B2
Abstract

Techniques for creating and using snapshots may include: receiving a request to create a new snapshot of a source object; determining whether a first generation identifier associated with the source object matches a second generation identifier associated with a base snapshot of the source object; determining whether the source object has been modified since the base snapshot was created; and responsive to determining the first generation identifier matches the second generation identifier and also determining that the source object has not been modified since the base snapshot was created, associating the new snapshot with the base snapshot thereby indicating that the new snapshot and the base snapshot have matching content and denote a same point in time copy of the source object.

Claims (50)

1. A method of creating and using snapshots comprising:

receiving a request to create a new snapshot of a source object;

determining that a first generation identifier associated with the source object matches a second generation identifier associated with a base snapshot of the source object;

determining that the source object has been modified since the base snapshot was created; and

responsive to determining that the first generation identifier matches the second generation identifier and also determining that the source object has not been modified since the base snapshot was created, associating the new snapshot with the base snapshot thereby indicating that the new snapshot and the base snapshot have matching content and denote a same point in time copy of the source object.

2. The method of claim 1 , wherein the source object is a storage object representing any one of a logical device, a file, a file system, a directory and a virtual volume used by one or more virtual machines.

3. The method of claim 1 , wherein the request to create the new snapshot is issued from a control path.

4. The method of claim 3 , wherein the request is issued by a scheduler component in accordance with a defined periodic time interval at which snapshots of the source object are taken.

5. The method of claim 4 , wherein the defined periodic time interval is included in a local protection policy specified for the source object.

6. The method of claim 4 , wherein the defined periodic time interval is a recovery point objective of a remote protection policy specified for the source object.

7. The method of claim 6 , wherein the remote protection policy specifies an asynchronous remote replication configuration for the source object, and wherein the asynchronous remote replication configuration includes the source object of a source data storage system configured with a target object as a remote counterpart for the source object, and wherein a remote replication facility automatically replicates modifications of the source object to the target object.

8. The method of claim 7 , wherein the remote replication facility uses a snapshot difference technique that performs processing including:

taking two successive snapshots of the source object; and

determining the data difference with respect to the two successive snapshots, wherein the data difference denotes data blocks of the source object that have been modified in the time interval between the two successive snapshots, wherein the data blocks that have been modified are replicated from the source system to the target system and applied to the target object.

9. The method of claim 8 , wherein said determining the data difference with respect to the two successive snapshots includes:

determining that a third generation identifier associated with a first snapshot of the two successive snapshots matches a fourth generation identifier associated with a second snapshot of the two successive snapshots; and

responsive to determining that the third generation identifier matches the fourth generation identifier, determining that the two successive snapshots have matching content, and otherwise determining that the two successive snapshots do not have matching content.

10. The method of claim 9 , wherein the first snapshot and the second snapshot are associated with a same replica of the source object, wherein the replica denotes a particular point in time copy of the source object.

11. The method of claim 10 , wherein the first snapshot and the second snapshot are associated with a same set of one or more data structures representing the same replica denoting the particular point in time copy of the source object.

12. The method of claim 9 , wherein the first snapshot is associated with a first replica of the source object and the second snapshot is associated with a different second replica of the source object, and wherein the first replica and the second replica each represent a same particular point in time copy of the source object, wherein the first replica is associated with the third generation identifier and wherein the second replica is associated with the fourth generation identifier.

13. The method of claim 12 , wherein the first snapshot is associated with a first set of one or more data structures representing the same particular point in time copy of the source object and the second snapshot is associated with a second different set of one or more data structures also representing the same particular point in time copy of the source object.

14. A system comprising:

one or more processors; and

one or more memories comprising code stored thereon that, when executed, performs a method of creating and using snapshots comprising:

receiving a request to create a new snapshot of a source object;

determining that a first generation identifier associated with the source object matches a second generation identifier associated with a base snapshot of the source object;

determining that the source object has been modified since the base snapshot was created; and

responsive to determining that the first generation identifier matches the second generation identifier and also determining that the source object has not been modified since the base snapshot was created, associating the new snapshot with the base snapshot thereby indicating that the new snapshot and the base snapshot have matching content and denote a same point in time copy of the source object.

15. A computer-readable medium comprising code stored thereon that, when executed, performs a method of creating and using snapshots comprising:

receiving a request to create a new snapshot of a source object;

determining that a first generation identifier associated with the source object matches a second generation identifier associated with a base snapshot of the source object;

determining that the source object has been modified since the base snapshot was created; and

responsive to determining that the first generation identifier matches the second generation identifier and also determining that the source object has not been modified since the base snapshot was created, associating the new snapshot with the base snapshot thereby indicating that the new snapshot and the base snapshot have matching content and denote a same point in time copy of the source object.

16. A method of creating and using snapshots comprising:

receiving a request to create a new snapshot of a source object;

determining at least one of: that a first generation identifier associated with the source object does not match a second generation identifier associated with a base snapshot of the source object, and that the source object has been modified since the base snapshot was created; and

responsive to determining that the first generation identifier does not match the second generation identifier or determining that the source object has been modified since the base snapshot was created, performing first processing to create a new replica denoting a new snapshot instance of the source object on the data path and associated the new replica with the new snapshot.

17. The method of claim 16 , further comprising:

determining that the base snapshot is not specified in the request; and

responsive to determining that the base snapshot is not specified in the request, performing the first processing to create a new replica denoting a new snapshot instance of the source object on the data path and associated the new replica with the new snapshot.

18. A computer-readable medium comprising codes stored thereon that, when executed, performs a method of creating and using snapshots comprising:

receiving a request to create a new snapshot of a source object;

determining at least one of: that a first generation identifier associated with the source object does not match a second generation identifier associated with a base snapshot of the source object, and that the source object has been modified since the base snapshot was created; and

responsive to determining that the first generation identifier does not match the second generation identifier or determining that the source object has been modified since the base snapshot was created, performing first processing to create a new replica denoting a new snapshot instance of the source object on the data path and associated the new replica with the new snapshot.

19. A system comprising:

one or more processors; and

a memory comprising code stored thereon that, when executed, performs a method of creating and using snapshots comprising:

receiving a request to create a new snapshot of a source object;

determining at least one of: that a first generation identifier associated with the source object does not match a second generation identifier associated with a base snapshot of the source object, and that the source object has been modified since the base snapshot was created; and

responsive to determining that the first generation identifier does not match the second generation identifier or determining that the source object has been modified since the base snapshot was created, performing first processing to create a new replica denoting a new snapshot instance of the source object on the data path and associated the new replica with the new snapshot.

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 Jan 19, 2021
From: SEELA, NAGAPRAVEEN VEERAVENKATA; TAYLOR, ALAN L.; HARAVU, NAGASIMHA G.; BRUNDAGE, MICHAEL C.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054954/0366 →