IP Library Granted Patent US 12,229,082
Granted Patent B2
US 12,229,082 · App. 18/366,053 · Granted Feb 18, 2025

Flexible tiering of snapshots to archival storage in remote object stores

Inventors: Atul Ramesh Pandit (Los Gatos, CA); Tijin George (Sunnyvale, CA); Avanthi Rajan (Fremont, CA); Anitha Ganesha (Santa Clara, CA)
Assignee: NetApp, Inc.
G06F16/128G06F11/1458
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 12,229,082
App. No.
18/366,053
Filed
Aug 7, 2023
Granted
Feb 18, 2025
Kind
B2
Art Unit
2164
USPC
707/649
Abstract

Techniques are provided for tiering snapshots to archival storage in remote object stores. A restore time metric, indicating that objects comprising snapshot data of snapshots created within a threshold timespan are to be available within a storage tier of a remote object store for performing restore operations, may be identified. A scanner may be executed to evaluate snapshots using the restore time metric to identify a set of candidate snapshots for archival from the storage tier to an archival storage tier of the remote object store. For each candidate snapshot within the set of candidate snapshots, the scanner may evaluate metadata associated with the candidate snapshot to identity one or more objects eligible for archival from the storage tier to the archival storage tier, and may archive the one or more objects from the storage tier to the archival storage tier.

Claims (48)

1. A method implemented by a scanner to perform operations comprising:

identifying a candidate snapshot for archival from a storage tier to an archival storage tier of a remote object store based upon the candidate snapshot being older than a restore time metric;

executing the scanner to evaluate an object identifier map of the candidate snapshot to identify objects within which snapshot data of the candidate snapshot are stored, wherein the object identifier map comprises bits set to indicate which objects within the remote object store comprise the snapshot data of the candidate snapshot;

evaluating, by the scanner, the object identifier map of the candidate snapshot and object identifier maps of non-candidate snapshots that are not older than the restore time metric to identify overlapping objects that store the snapshot data of the candidate snapshot and snapshot data of at least one non-candidate snapshot and to identify non-overlapping objects that store the snapshot data of the candidate snapshot and do not store snapshot data of any non-candidate snapshots; and

archiving the non-overlapping objects from the storage tier to the archival storage tier.

2. The method of claim 1 , wherein the evaluating comprises:

performing a difference operation, by the scanner, upon the object identifier map of the candidate snapshot and the object identifier maps of the non-candidate snapshots.

3. The method of claim 1 , comprising:

identifying an object as a non-overlapping object for archival based upon the object storing snapshot data of candidate snapshots older than the restore time metric and not storing snapshot data of non-candidate snapshots.

4. The method of claim 1 , comprising:

identifying an object as a non-overlapping object for archival based upon the object not storing snapshot data of a non-candidate snapshot that is not older than the restore time metric.

5. The method of claim 1 , wherein the non-overlapping objects do not comprise snapshot data of the non-candidate snapshots that are not older than the restore time metric.

6. The method of claim 1 , comprising:

identifying an overlapping object based upon the overlapping object storing snapshot data of a non-candidate snapshot that is not older than the restore time metric.

7. The method of claim 1 , wherein the operations comprise:

performing, by the scanner, a difference upon bits within the object identifier map of the candidate snapshot and bits within the object identifier maps of the non-candidate snapshots.

8. A computing device comprising:

a memory comprising instructions for implementing a scanner; and

a processor coupled to the memory, the processor configured to execute the instructions to cause the processor to perform operations comprising:

identifying a candidate snapshot for archival from a storage tier to an archival storage tier of a remote object store based upon the candidate snapshot being older than a restore time metric;

executing the scanner to evaluate an object identifier map of the candidate snapshot to identify objects within which snapshot data of the candidate snapshot are stored, wherein the object identifier map comprises bits set to indicate which objects within the remote object store comprise the snapshot data of the candidate snapshot;

evaluating, by the scanner, the object identifier map of the candidate snapshot and object identifier maps of non-candidate snapshots that are not older than the restore time metric to identify overlapping objects that store the snapshot data of the candidate snapshot and snapshot data of at least one non-candidate snapshot and to identify non-overlapping objects that store the snapshot data of the candidate snapshot and do not store snapshot data of any non-candidate snapshots selecting; and

archiving the non-overlapping objects from the storage tier to the archival storage tier.

9. The computing device of claim 8 , wherein the operations comprise:

performing a difference operation, by the scanner, upon the object identifier map of the candidate snapshot and the object identifier maps of the non-candidate snapshots.

10. The computing device of claim 8 , wherein the operations comprise:

evaluating, by the scanner, a first object identifier map of the snapshot, a second object identifier map of a prior snapshot, and a third object identifier map of a next snapshot to identify the non-overlapping objects for archival.

11. The computing device of claim 10 , wherein the scanner identifies differences between the first object identifier map, the second object identifier map, and the third object identifier map to identify the non-overlapping objects eligible for archival.

12. The computing device of claim 8 , wherein the operations comprise:

executing, difference operations by the scanner according to a first referenced mode of operation, to identify objects that are first referenced by a snapshot as the non-overlapping objects eligible for archival, wherein the scanner evaluates a set of snapshots to identify the snapshot.

13. The computing device of claim 8 , wherein the operations comprise:

executing, difference operations by the scanner according to a last referenced mode of operation, to identify objects that are last referenced by a snapshot as the non-overlapping objects eligible for archival, wherein the scanner evaluates a set of snapshots to identify the snapshot.

14. The computing device of claim 8 , wherein the operations comprise:

executing, difference operations by the scanner according to a uniquely referenced mode of operation to identify objects that are uniquely referenced by a snapshot and no other snapshots as the non-overlapping objects eligible for archival, wherein the scanner evaluates a set of snapshots to identify the snapshot.

15. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:

identifying a candidate snapshot for archival from a storage tier to an archival storage tier of a remote object store based upon the candidate snapshot being older than a restore time metric;

executing a scanner to evaluate an object identifier map of the candidate snapshot to identify objects within which snapshot data of the candidate snapshot are stored, wherein the object identifier map comprises bits set to indicate which objects within the remote object store comprise the snapshot data of the candidate snapshot;

evaluating, by the scanner, the object identifier map of the candidate snapshot and object identifier maps of non-candidate snapshots that are not older than the restore time metric to identify overlapping objects that store the snapshot data of the candidate snapshot and snapshot data of at least one non-candidate snapshot and to identify non-overlapping objects that store the snapshot data of the candidate snapshot and do not store snapshot data of any non-candidate snapshots; and

archiving the non-overlapping objects from the storage tier to the archival storage tier.

16. The non-transitory machine readable medium of claim 15 , comprising:

performing a difference operation, by the scanner, upon the object identifier map of the candidate snapshot and the object identifier maps of the non-candidate snapshots.

17. The non-transitory machine readable medium of claim 15 , comprising:

identifying an object as a non-overlapping object for archival based upon the object storing snapshot data of candidate snapshots older than the restore time metric and not storing snapshot data of non-candidate snapshots.

18. The non-transitory machine readable medium of claim 15 , comprising:

identifying an object as a non-overlapping object for archival based upon the object not storing snapshot data of a non-candidate snapshot that is not older than the restore time metric.

19. The non-transitory machine readable medium of claim 15 , wherein the non-overlapping objects do not comprise snapshot data of the non-candidate snapshots that are not older than the restore time metric.

20. The non-transitory machine readable medium of claim 15 , comprising:

identifying an overlapping object based upon the overlapping object storing snapshot data of a non-candidate snapshot that is not older than the restore time metric.

Continuity (2)
Continuation 17389395 · Jul 30, 2021
Related Publication 20230409523A1 · Dec 21, 2023
References Cited (65)
US 6484186B1 · Rungta · 2002 [cited by examiner]
US 7325111B1 · Jiang · 2008 [cited by examiner]
US 7440965B1 · Pruthi · 2008 [cited by examiner]
US 8341121B1 · Claudatos et al. · 2012 [cited by applicant]
US 8805789B2 · Berman et al. · 2014 [cited by applicant]
US 9423962B1 · Basham · 2016 [cited by examiner]
US 10324803B1 · Agarwal · 2019 [cited by examiner]
US 10489248B1 · Javadekar et al. · 2019 [cited by applicant]
US 10635545B1 · Bono et al. · 2020 [cited by applicant]
US 10733142B1 · Madan · 2020 [cited by examiner]
US 11422898B2 · Dillon · 2022 [cited by examiner]
US 11442669B1 · Frandzel et al. · 2022 [cited by applicant]
US 11550816B1 · Quan · 2023 [cited by examiner]
US 11625181B1 · Bernat · 2023 [cited by examiner]
US 20070294320A1 · Yueh et al. · 2007 [cited by applicant]
US 20130110779A1 · Taylor · 2013 [cited by examiner]
US 20140059298A1 · Olin et al. · 2014 [cited by applicant]
US 20140181443A1 · Kottomtharayil et al. · 2014 [cited by applicant]
US 20140258613A1 · Sampathkumar · 2014 [cited by examiner]
US 20140344395A1 · Alexander · 2014 [cited by applicant]
US 20160142482A1 · Mehta et al. · 2016 [cited by applicant]
US 20170277435A1 · Wadhwa · 2017 [cited by examiner]
US 20170316025A1 · Shekhar et al. · 2017 [cited by applicant]
US 20180356989A1 · Meister et al. · 2018 [cited by applicant]
US 20190129621A1 · Kushwah · 2019 [cited by examiner]
US 20190213123A1 · Agarwal · 2019 [cited by examiner]
US 20190220198A1 · Kashi Visvanathan et al. · 2019 [cited by applicant]
US 20190220360A1 · Kashi Visvanathan et al. · 2019 [cited by applicant]
US 20190220367A1 · Kashi Visvanathan et al. · 2019 [cited by applicant]
US 20190220527A1 · Sarda et al. · 2019 [cited by applicant]
US 20200034049A1 · Bhattacharyya · 2020 [cited by examiner]
US 20200133498A1 · Christensen · 2020 [cited by applicant]
US 20200133790A1 · Christensen · 2020 [cited by applicant]
US 20200134040A1 · Christensen · 2020 [cited by applicant]
US 20200174893A1 · Tormasov et al. · 2020 [cited by applicant]
US 20200285410A1 · George · 2020 [cited by examiner]
US 20200285611A1 · George et al. · 2020 [cited by applicant]
US 20200285614A1 · George · 2020 [cited by examiner]
US 20210019093A1 · Karr et al. · 2021 [cited by applicant]
US 20210157677A1 · Vokaliga et al. · 2021 [cited by applicant]
US 20210216413A1 · Saad et al. · 2021 [cited by applicant]
US 20220035714A1 · Schultz et al. · 2022 [cited by applicant]
US 20220066882A1 · Wang · 2022 [cited by examiner]
US 20220092022A1 · Agarwal et al. · 2022 [cited by applicant]
US 20220137837A1 · Hayashi et al. · 2022 [cited by applicant]
US 20220147259A1 · Thakur et al. · 2022 [cited by applicant]
US 20220229732A1 · Chitloor · 2022 [cited by examiner]
US 20220229735A1 · Chopra · 2022 [cited by examiner]
US 20220245034A1 · Nara et al. · 2022 [cited by applicant]
US 20220276987A1 · Guturi et al. · 2022 [cited by applicant]
US 20220283904A1 · Chopra · 2022 [cited by examiner]
US 20220318203A1 · Kotwal · 2022 [cited by examiner]
US 20220382639A1 · Yadav · 2022 [cited by examiner]
US 20230029616A1 · Pandit et al. · 2023 [cited by applicant]
CA 2548542C · 2011 [cited by applicant]
CN 1746856B · 2010 [cited by applicant]
CN 109145176A · 2019 [cited by applicant]
CN 106716335B · 2020 [cited by applicant]
JP H09128163A · 1997 [cited by applicant]
Aguilera et al., “Improving Recoverability in Multi-tier Storage Systems”, 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN' 07), IEEE, 2007, 10 pages. (Year: 2007). [cited by examiner]
Matsui et al., “Improving the Performance of Backup Candidate File Selection using Inode Bitmap”, IBM, May 19, 2017, 12 pages, accessed online at <https://msstconference.org/MSST-history/2017/Presentations/PerformanceOf… [cited by examiner]
Moh, C., “A Snapshot Utility for a Distributed Object-Oriented Database System”, Aug. 14, 2002, pp. 1-19, access online at <https://www.researchgate.net/publication/228949062>. (Year: 2002). [cited by examiner]
International Preliminary Report on Patentability for Application No. PCT/US2022/038748, mailed on Feb. 8, 2024, 06 pages. [cited by applicant]
Hoseinzadeh M., “A Survey on Tiering and Caching in High-Performance Storage Systems,” arXiv: 1904.11560v1 [cs.AR], Apr. 25, 2019, 17 pages, Accessed at https://doi.org/10.48550/arXiv.1904.11560. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2022/038748 mailed on Nov. 15, 2022, 10 pages. [cited by applicant]
Cited By (1)
US 12,399,707