IP Library Granted Patent US 10,983,868
Granted Patent B2
US 10,983,868 · App. 16/168,594 · Granted Apr 20, 2021

Epoch based snapshot summary

Inventors: Julio Lopez (Mountain View, CA); Thomas Manville (Mountain View, CA)
Assignee: EMC IP Holding Company LLC
G06F11/1448G06F16/125G06F16/128G06F16/183G06F16/955G06F2201/835G06F2201/84
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,983,868
App. No.
16/168,594
Granted
Apr 20, 2021
Kind
B2
Abstract

Epoch-based management of file system data is disclosed. In various embodiments, for each of a plurality of snapshots, data that associates with the snapshot a corresponding last chunk identifier assigned as of a time at which the snapshot is or was created is stored a in a first data structure. For each of a plurality of chunks of file system data no longer referenced by any live file system object, an epoch identifier associated with an epoch in which the chunk became no longer referenced by any live file system object is stored in a second data structure. A chunk identifier and associated epoch comprising an entry in the second data structure are compared with one or more entries in the first data structure to determine whether a chunk associated with the chunk identifier is associated with a snapshot that continues to be retained.

Claims (46)

1. A method, comprising:

storing, by one or more processors, a mapping of snapshots to chunk identifiers;

storing, by one or more processors, a mapping of epoch identifiers to chunks of file system data no longer referenced by a file system object that has not been subject to deletion, an epoch identifier being associated with an epoch for which the corresponding chunk was determined to no longer be referenced by a file system object that has not been subject to deletion; and

determining, by one or more processors, whether to delete a chunk based at least in part on a determination whether the chunk is referenced by the file system object, and a determination whether the chunk is associated with a snapshot that continues to be retained, wherein:

the determination whether the chunk is referenced by the file system object is based at least in part on the mapping of epoch identifiers to chunks of file system data no longer referenced by the file system object; and

the determination whether the chunk is associated with the snapshot that continues to be retained is based at least in part on the mapping of snapshots to chunk identifiers,

wherein the chunk is further determined not to be included in a snapshot by virtue of the chunk having become no longer referenced by a the file system object that has not been subject to deletion at a time prior a creation time when the snapshot was created, and the determination is made at least in part by comparing an epoch associated with the chunk identifier in a corresponding entry in the mapping of epoch identifiers to chunks of file system data no longer referenced by a file system object that has not been subject to deletion to an epoch or other identifier associated with the snapshot and concluding that the epoch in which the chunk became no longer referenced is prior to or the same as an epoch immediately preceding creation of the snapshot.

2. The method of claim 1 , wherein the determining whether to delete the chunk comprises:

comparing, by one or more processors, a chunk identifier and associated epoch with one or more entries in the mapping of snapshots to chunk identifiers to determine whether the chunk associated with the chunk identifier is associated with a snapshot that continues to be retained; and

determining, by one or more processors, a status with respect to deletion of the chunk corresponding to the chunk identifiers, wherein the status with respect to deletion of the chunk is based at least in part on the comparison of the chunk identifier and associated epoch comprising an entry in a second data structure with one or more entries in a first data structure.

3. The method of claim 2 , wherein the chunk is determined not to be included in a snapshot by virtue of the chunk having been created and stored subsequent to the snapshot having been created, and the determination is made at least in part by comparing a chunk identifier of the chunk.

4. The method of claim 3 , further comprising:

deleting the chunk based at least in part on a determination made based on least in part on the comparison that the chunk associated with the chunk identifier is not associated with any snapshot that continues to be retained.

5. The method of claim 1 , wherein the chunk is determined not to be included in a snapshot by virtue of the chunk having been created and stored subsequent to the snapshot having been created, and the determination is made at least in part by comparing a chunk identifier of the chunk with a last chunk identifier associated with the snapshot in a first data structure and concluding that the chunk identifier is greater than the last chunk identifier associated with the snapshot.

6. The method of claim 5 , further comprising:

deleting the chunk based at least in part on a determination made based on least in part on the comparison that the chunk associated with the chunk identifier is not associated with any snapshot that continues to be retained.

7. The method of claim 1 , wherein the chunk identifier mapped to a corresponding snapshot is assigned as of a time at which the corresponding snapshot is or was created.

8. The method of claim 1 , wherein determining whether to delete the chunk comprises:

determining to delete the chunk in response to determining that an epoch for which the chunk was determined to no longer be referenced by a file system object that has not been subject to deletion is different from an epoch for which the chunk was created.

9. The method of claim 1 , further comprising assigning a corresponding chunk identifier to chunks of file system data, as each chunk is created and stored in the file system.

10. The method of claim 9 , wherein the chunk identifiers are monotonically increasing over time.

11. The method of claim 10 , wherein a birth epoch of a chunk is determined based on chunk identifier.

12. The method of claim 1 , wherein chunks as stored in the file system are immutable.

13. The method of claim 1 , further comprising receiving an indication that a chunk is no longer referenced by a file system object that has not been subject to deletion.

14. The method of claim 13 , further comprising adding to a delete queue data associated with the chunk.

15. The method of claim 13 , further comprising deleting the chunk immediately based at least in part on a determination that the chunk was created and became no longer referenced within a same epoch.

16. The method of claim 1 , wherein an epoch is defined with reference to a snapshot that marks either the beginning or the end of the epoch.

17. The method of claim 16 , wherein the snapshot marks the end of the epoch and the epoch extends to a next previous snapshot to the snapshot that marks the end of the epoch.

18. The method of claim 1 , wherein the snapshot corresponds to one or more of file system data and metadata.

19. The method of claim 1 , wherein each epoch is associated with one or more snapshots, and the one or more snapshots are associated with respective snapshot creation times which define one or both of a beginning and an end of the epoch.

20. A computer system, comprising:

a storage device; and

one or more processors coupled to the storage device and configured to:

store a mapping of snapshots to chunk identifiers;

store a mapping of epoch identifiers to chunks of file system data no longer referenced by a file system object that has not been subject to deletion, an epoch identifier being associated with an epoch for which the corresponding chunk was determined to no longer be referenced by a file system object that has not been subject to deletion; and

determine whether to delete a chunk based at least in part a determination whether the chunk is referenced by the file system object, and a determination whether the chunk is associated with a snapshot that continues to be retained, wherein:

the determination whether the chunk is referenced by the file system object is based at least in part on the mapping of epoch identifiers to chunks of file system data no longer referenced by the file system object; and

the determination whether the chunk is associated with the snapshot that continues to be retained is based at least in part on the mapping of snapshots to chunk identifiers,

wherein the chunk is further determined not to be included in a snapshot by virtue of the chunk having become no longer referenced by a the file system object that has not been subject to deletion at a time prior a creation time when the snapshot was created, and the determination is made at least in part by comparing an epoch associated with the chunk identifier in a corresponding entry in the mapping of epoch identifiers to chunks of file system data no longer referenced by a file system object that has not been subject to deletion to an epoch or other identifier associated with the snapshot and concluding that the epoch in which the chunk became no longer referenced is prior to or the same as an epoch immediately preceding creation of the snapshot.

21. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

storing, by one or more processors, a mapping of snapshots to chunk identifiers;

storing, by one or more processors, a mapping of epoch identifiers to chunks of file system data no longer referenced by a file system object that has not been subject to deletion, an epoch identifier being associated with an epoch for which the corresponding chunk was determined to no longer be referenced by a file system object that has not been subject to deletion; and

determining, by one or more processors, whether to delete a chunk based at least in part on a determination whether the chunk is referenced by the file system object, and a determination whether the chunk is associated with a snapshot that continues to be retained, wherein:

the determination whether the chunk is referenced by the file system object is based at least in part on the mapping of epoch identifiers to chunks of file system data no longer referenced by the file system object; and

the determination whether the chunk is associated with the snapshot that continues to be retained is based at least in part on the mapping of snapshots to chunk identifiers,

wherein the chunk is further determined not to be included in a snapshot by virtue of the chunk having become no longer referenced by a the file system object that has not been subject to deletion at a time prior a creation time when the snapshot was created, and the determination is made at least in part by comparing an epoch associated with the chunk identifier in a corresponding entry in the mapping of epoch identifiers to chunks of file system data no longer referenced by a file system object that has not been subject to deletion to an epoch or other identifier associated with the snapshot and concluding that the epoch in which the chunk became no longer referenced is prior to or the same as an epoch immediately preceding creation of the snapshot.

Assignments (8)
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 AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2021
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055333/0091 →
MERGER Recorded Feb 2, 2021
From: MAGINATICS LLC
To: EMC CORPORATION
Reel/Frame 055118/0382 →
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 Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
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 Oct 29, 2018
From: LOPEZ, JULIO; MANVILLE, THOMAS
To: MAGINATICS LLC
Reel/Frame 047336/0590 →
Continuity (2)
Continuation 14675474 · Mar 31, 2015
Related Publication 20190065321A1 · Feb 28, 2019