IP Library Granted Patent US 10,296,594
Granted Patent B1
US 10,296,594 · App. 14/981,695 · Granted May 21, 2019

Cloud-aware snapshot difference determination

Inventor: Pankaj Datta (Acton, MA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F17/30088G06F17/30132G06F17/30197G06F17/30371
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,296,594
App. No.
14/981,695
Filed
Dec 28, 2015
Granted
May 21, 2019
Kind
B1
Examiner
CHEUNG, EDDY
Art Unit
2165
USPC
707/695
Abstract

Modifications made to files (e.g., stub files) within a distributed file storage system over a defined time period are determined. Moreover, the distributed file storage system employs a tiered cloud storage architecture. In one aspect, snapshots of a stub file can be generated at different instances of time. Further, metadata of the stub file within the different snapshots can be compared to determine whether the stub file has been modified. As an example, the metadata can include cache metadata that describes the content within the cache of the stub file and/or mapping metadata that describes the content within cloud storage that is referenced by the stub file.

Claims (42)

1. A system, comprising:

a processor; and

a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising:

determining first snapshot data comprising a first snapshot of a stub file at a first instance in time, wherein the first snapshot data comprises first metadata associated with the stub file that comprises a first mapping data structure that references content stored in a network storage device and comprises a first cache data structure associated with a first portion of the content that has been cached within the stub file in response to receiving a first request for the first portion of the content, and wherein the first cache data structure indicates that the first portion of the content has been read or modified;

determining second snapshot data indicative of a second snapshot of the stub file at a second instance in time, wherein the second snapshot data comprises second metadata associated with the stub file that comprises a second mapping data structure that references the content and comprises a second cache data structure associated with a second portion of the content that has been cached within the stub file in response to receiving a second request for the second portion of the content, and wherein the second cache data structure that the second portion of the content has been read or modified; and

in response to determining that the first metadata and the second metadata satisfies a defined criterion, determining that the content has been changed between the first instance and second instance in time.

2. The system of claim 1 , wherein the operations further comprise:

in response to determining that the second cache data structure indicates that the second portion of the content has been read and that the first mapping data structure matches the second mapping data structure, determining that the content has not been changed between the first instance and the second instance in time.

3. The system of claim 1 , wherein the determining that the first metadata and the second metadata satisfies the defined criterion comprises determining that the second cache data structure indicates that the second portion of the content has been written to and that the first mapping data structure matches the second mapping data structure.

4. The system of claim 1 , wherein the operations further comprise:

in response to determining that the second cache data structure indicates that the second portion of the content has been written to and that the first mapping data structure does not match the second mapping data structure, determining that the content has not been changed between the first instance and the second instance in time.

5. The system of claim 1 , wherein the determining that the first metadata and the second metadata satisfies the defined criterion comprises determining that the second cache data structure indicates that the second portion of the content has been read and that the first mapping data structure does not match the second mapping data structure.

6. The system of claim 1 , wherein the operations further comprise:

storing the first snapshot data within a sparse file, and wherein a sparse file is a file that has not been allocated disk space for user data.

7. The system of claim 1 , wherein the first metadata further comprises sparseness information describing a sparse region of the network storage device, and wherein the sparse region is a portion of the network storage device that does not store the content.

8. The system of claim 1 , wherein the operations further comprise:

facilitating a presentation of information that represents a change in the content.

9. The system of claim 1 , wherein the determining that the content has been changed comprises determining that the content has been changed in response to receiving, from a client device, query data indicative of a query to determine a difference between the snapshots.

10. The system of claim 1 , wherein the stub file is stored on a source cluster device and wherein the determining that the content has been changed comprises determining that the content has been changed in response to determining that the stub file is to be synchronized with a replica of the stub file that is stored on a target cluster device.

11. The system of claim 1 , wherein at a third instance in time the stub file is converted to a local file, and wherein the local file comprises the content and is retained within a source cluster device.

12. A method, comprising:

receiving, by a system comprising a processor, snapshot data comprising snapshots of a file at different instances in time, wherein, at least at one of the different instances in time, the file is represented as a stub file that references content stored in a network storage device and comprises a region employable to store a portion of the content in response to receiving a request for the portion of the content, and wherein the stub file comprises metadata associated with the content that comprises a mapping data structure indicative of a location of the content within the network storage device and comprises a cache data structure indicative of a modification status of the portion of the content;

based on a comparison of the snapshots, determining that the snapshots comprise different data; and

based on determining that the cache data structure indicates that the portion of the content has been modified and that respective mapping data structures of the snapshots do not match, determining that the content has not been altered between the different instances in time.

13. The method of claim 12 , further comprising:

based on determining that the cache data structure indicates that the portion of the content has been modified and that respective mapping data structures of the snapshots match, determining that the content has been altered between the different instances in time.

14. The method of claim 12 , further comprising:

based on determining that the cache data structure indicates that the portion of the content has been read and that respective mapping data structures of the snapshots match, determining that the content has not been altered between the different instances in time.

15. The method of claim 12 , wherein the determining that the snapshots comprise different data comprises determining that the snapshots comprise the different data in response to receiving query data indicative of a query for determining a difference in the snapshots.

16. The method of claim 15 , wherein the stub file is retained within a source cluster device and the method further comprises:

based on the difference, synchronizing the stub file with a replica of the stub file that is retained within a target cluster device.

17. The method of claim 15 , further comprising:

based on the difference, determining information indicative of a sparse region of the network storage device that does not store the content.

18. A non-transitory computer-readable storage medium comprising instructions that, in response to execution, cause a device comprising a processor to perform operations, comprising:

determining first snapshot data comprising a first snapshot of a file stored within a primary storage device at a first instance in time;

determining second snapshot data comprising a second snapshot of the file at a second instance in time, wherein, at least at the first instance in time or the second instance in time, the file is represented as a stub file that stores pointer data that references content that is stored in a secondary storage device and that comprises a region employable to store a portion of the content in response to receiving a request for the portion of the content, and wherein the stub file comprises metadata that comprises a mapping data structure indicative of a location of the content within the secondary storage device and comprises a cache data structure indicative of a modification status of the portion of the content stored within the primary storage device;

based on a comparison of the snapshots, determining that the snapshots comprise different data; and

based on determining that the cache data structure indicates that the portion of the content has been modified and that respective mapping data structures of the snapshots do not match, verifying that the content has not been altered between the first instance in time and the second instance in time.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the operations further comprise:

based on determining that the cache data structure indicates that the portion of the content has been modified and that respective mapping data structures of the snapshots match, determining that the content has been altered between the first instance in time and the second instance in time.

20. The non-transitory computer-readable storage medium of claim 18 , wherein operations further comprise:

based on determining that the cache data structure indicates that the portion of the content has been read and that respective mapping data structures of the snapshots match, determining that the content has not been altered between the different instances in time.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2015
From: DATTA, PANKAJ
To: EMC CORPORATION
Reel/Frame 037370/0323 →
Cited By (5)
US 12,229,148 US 12,554,442 US 12,566,775 US 12,596,770 US 12,608,283