IP Library Granted Patent US 12,561,281
Granted Patent B2
US 12,561,281 · App. 18/641,602 · Granted Feb 24, 2026

Reducing stable data eviction with synthetic baseline snapshot and eviction state refresh

Inventors: Ajay Pratap Singh Kushwah (San Ramon, CA); Ling Zheng (Saratoga, CA); Sharad Jain (Santa Clara, CA)
Assignee: NetApp, Inc.
G06F16/128G06F11/1448G06F11/1464G06F12/121G06F16/13H04L67/568
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,561,281
App. No.
18/641,602
Granted
Feb 24, 2026
Kind
B2
Abstract

With a forever incremental snapshot configuration and a typical caching policy (e.g., least recently used), a storage appliance may evict stable data blocks of an older snapshot, perhaps unchanged data blocks of the snapshot baseline. If stable data blocks have been evicted, restore of a recent snapshot will suffer the time penalty of downloading the stable blocks for restoring the recent snapshot. Creating synthetic baseline snapshots and refreshing eviction data of stable data blocks can avoid eviction of stable data blocks and reduce the risk of violating a recovery time objective.

Claims (52)

1 . A method comprising:

creating snapshot metadata records for one or more snapshots;

determining whether a threshold for creating a synthetic baseline snapshot is satisfied;

in response to the threshold being satisfied, iterating over prior snapshots of the one or more snapshots that precede a received snapshot back to a baseline snapshot to retrieve snapshot metadata records of the received snapshot and the prior snapshots; and

creating the synthetic baseline snapshot based upon the snapshot metadata records of the received snapshot and the prior snapshots.

2 . The method of claim 1 , wherein the creating snapshot metadata records further comprises:

creating inode records, directory records, and data map records as the snapshot metadata records.

3 . The method of claim 1 , comprising:

configuring the threshold to achieve a balance between synthetic baseline snapshot creation frequency and managing a cache to avoid eviction of stable data.

4 . The method of claim 1 , comprising:

configuring the threshold based upon a number of snapshots and an amount of cache consumed by using a snapshot change rate.

5 . The method of claim 4 , comprising:

dynamically recalculating the snapshot change rate.

6 . The method of claim 1 , comprising:

walking local snapshot identifiers associated with a data collection corresponding to the received snapshot.

7 . The method of claim 1 , comprising:

in response to creating the synthetic baseline snapshot, updating parent-child relationship metadata for the prior snapshots to indicate that the synthetic baseline snapshot is a parent snapshot for subsequent incremental snapshots.

8 . The method of claim 1 , comprising:

maintaining parent-child relationships between incremental snapshots and a baseline snapshot; and

adding metadata to indicate that the synthetic baseline snapshot is a synthetic parent for subsequent incremental snapshots.

9 . The method of claim 1 , comprising:

utilizing the snapshot metadata records of the received snapshot and the prior snapshots and refresh of eviction state data to reduce stable data eviction from a cache.

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

creating snapshot metadata records for one or more snapshots;

determining whether a threshold for creating a synthetic baseline snapshot is satisfied;

in response to the threshold being satisfied, iterating over prior snapshots of the one or more snapshots that precede a received snapshot back to a baseline snapshot to retrieve snapshot metadata records of the received snapshot and the prior snapshots; and

creating the synthetic baseline snapshot based upon the snapshot metadata records of the received snapshot and the prior snapshots.

11 . The non-transitory machine readable medium of claim 10 , wherein the operations comprise:

creating inode records, directory records, and data map records as the snapshot metadata records.

12 . The non-transitory machine readable medium of claim 10 , wherein the operations comprise:

configuring the threshold to achieve a balance between synthetic baseline snapshot creation frequency and managing a cache to avoid eviction of stable data.

13 . The non-transitory machine readable medium of claim 10 , wherein the operations comprise:

configuring the threshold based upon a number of snapshots and an amount of cache consumed by using a snapshot change rate.

14 . The non-transitory machine readable medium of claim 13 , wherein the operations comprise:

dynamically recalculating the snapshot change rate.

15 . The non-transitory machine readable medium of claim 10 , wherein the operations comprise:

walking local snapshot identifiers associated with a data collection corresponding to the received snapshot.

16 . The non-transitory machine readable medium of claim 10 , wherein the operations comprise:

in response to creating the synthetic baseline snapshot, updating parent-child relationship metadata for the prior snapshots to indicate that the synthetic baseline snapshot is a parent snapshot for subsequent incremental snapshots.

17 . A computing device comprising:

a memory comprising machine executable code for performing a method; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to perform operations comprising:

creating snapshot metadata records for one or more snapshots;

determining whether a threshold for creating a synthetic baseline snapshot is satisfied;

in response to the threshold being satisfied, iterating over prior snapshots of the one or more snapshots that precede a received snapshot back to a baseline snapshot to retrieve snapshot metadata records of the received snapshot and the prior snapshots; and

creating the synthetic baseline snapshot based upon the snapshot metadata records of the received snapshot and the prior snapshots.

18 . The computing device of claim 17 , wherein the machine executable code to causes the processor to perform operations comprising:

in response to creating the synthetic baseline snapshot, updating parent-child relationship metadata for the prior snapshots to indicate that the synthetic baseline snapshot is a parent snapshot for subsequent incremental snapshots.

19 . The computing device of claim 17 , wherein the machine executable code to causes the processor to perform operations comprising:

walking local snapshot identifiers associated with a data collection corresponding to the received snapshot.

20 . The computing device of claim 17 , wherein the machine executable code to causes the processor to perform operations comprising:

configuring the threshold based upon a number of snapshots and an amount of cache consumed by using a snapshot change rate.

Continuity (4)
Continuation 17536515 · Nov 29, 2021
Continuation 16435829 · Jun 10, 2019
Continuation 15338272 · Oct 28, 2016
Related Publication 20240273064A1 · Aug 15, 2024
References Cited (63)
US 7216135B2 · Sawdon et al. · 2007 [cited by applicant]
US 7694191B1 · Bono et al. · 2010 [cited by applicant]
US 8190835B1 · Yueh · 2012 [cited by applicant]
US 8190836B1 · Zheng et al. · 2012 [cited by applicant]
US 8285758B1 · Bono et al. · 2012 [cited by applicant]
US 8412688B1 · Armangau et al. · 2013 [cited by applicant]
US 8504529B1 · Zheng et al. · 2013 [cited by applicant]
US 8515911B1 · Zhou et al. · 2013 [cited by applicant]
US 8620973B1 · Veeraswamy et al. · 2013 [cited by applicant]
US 8789208B1 · Sundaram et al. · 2014 [cited by applicant]
US 8972351B1 · Kumar et al. · 2015 [cited by applicant]
US 9020903B1 · Vempati et al. · 2015 [cited by applicant]
US 9679040B1 · Davis et al. · 2017 [cited by applicant]
US 9720835B1 · Shilane et al. · 2017 [cited by applicant]
US 10282099B1 · Kushwah et al. · 2019 [cited by applicant]
US 10346354B2 · Kushwah · 2019 [cited by examiner]
US 10635548B2 · Kushwah et al. · 2020 [cited by applicant]
US 10824589B2 · Jain et al. · 2020 [cited by applicant]
US 11188500B2 · Kushwah et al. · 2021 [cited by applicant]
US 11768803B2 · Jain et al. · 2023 [cited by applicant]
US 12007944B2 · Kushwah et al. · 2024 [cited by applicant]
US 12099467B2 · Jain et al. · 2024 [cited by applicant]
US 20050066095A1 · Mullick et al. · 2005 [cited by applicant]
US 20070266056A1 · Stacey et al. · 2007 [cited by applicant]
US 20110258461A1 · Bates · 2011 [cited by applicant]
US 20120084261A1 · Parab · 2012 [cited by applicant]
US 20120159016A1 · Morita · 2012 [cited by applicant]
US 20130110778A1 · Taylor et al. · 2013 [cited by applicant]
US 20140006357A1 · Davis et al. · 2014 [cited by applicant]
US 20140201737A1 · Mitkar et al. · 2014 [cited by applicant]
US 20150261792A1 · Attarde et al. · 2015 [cited by applicant]
US 20160188415A1 · Karinta et al. · 2016 [cited by applicant]
US 20160188417A1 · Karinta et al. · 2016 [cited by applicant]
US 20160231940A1 · Tabachnik et al. · 2016 [cited by applicant]
US 20160314046A1 · Kumarasamy · 2016 [cited by applicant]
US 20170123935A1 · Pandit et al. · 2017 [cited by applicant]
US 20170212811A1 · Kashnikov et al. · 2017 [cited by applicant]
US 20180121453A1 · Jain et al. · 2018 [cited by applicant]
US 20190294586A1 · Kushwah · 2019 [cited by examiner]
US 20210004353A1 · Jain · 2021 [cited by examiner]
US 20220083505A1 · Kushwah et al. · 2022 [cited by applicant]
US 20230334013A1 · Jain et al. · 2023 [cited by applicant]
CN 104933133A · 2015 [cited by applicant]
EP 1349088A2 · 2003 [cited by applicant]
EP 3477482A2 · 2019 [cited by applicant]
WO 2009019128A1 · 2009 [cited by applicant]
WO 2018081737A1 · 2018 [cited by applicant]
Notice of Allowance mailed on Aug. 7, 2024 for U.S. Appl. No. 18/333,627, filed Jun. 13, 2023, 08 pages. [cited by applicant]
Final Office Action mailed Sep. 21, 2023 for U.S. Appl. No. 17/536,515, filed Nov. 29, 2021, 11 pages. [cited by applicant]
Notice of Allowance mailed on Dec. 20, 2023 for U.S. Appl. No. 17/536,515, filed Nov. 29, 2021, 10 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 27, 2024 for U.S. Appl. No. 17/536,515, filed Nov. 29, 2021, 02 pages. [cited by applicant]
Notice of Allowance mailed on May 1, 2024 for U.S. Appl. No. 17/536,515, filed Nov. 29, 2021, 02 pages. [cited by applicant]
Extended European Search Report for Application No. EP18203066 mailed on Jul. 19, 2019, 9 pages. [cited by applicant]
Extended European Search Report for Application No. EP20180203064mailed on Feb. 24, 2020, 8 pages. [cited by applicant]
First Chinese Office Action cited in Chinese Application No. 201780076961.2 dated Nov. 4, 2022, 7 pages. [cited by applicant]
International Preliminary Report on Patentability for Application No. PCT/US2017/059079 mailed on Apr. 30, 2019, 10 pages. [cited by applicant]
International Preliminary Report on Patentability for Application No. PCT/US2017/059090 mailed on Apr. 30, 2019, 7 pages. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2017/059079 mailed on Feb. 5, 2018, 15 pages. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2017/059090 mailed on Feb. 2, 2018, 12 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 21, 2024 for U.S. Appl. No. 18/333,627, filed Jun. 13, 2023, 13 pages. [cited by applicant]
Notice of Allowance mailed on May 24, 2023 for U.S. Appl. No. 17/029,920, filed Sep. 23, 2020, 8 pages. [cited by applicant]
Search Report Chinese Office Action cited in Chinese Application No. 201780076961.2 dated Oct. 31, 2022, 1 page. [cited by applicant]
Wang Y., et al., “Gnothi: Separating Data and Metadata for Efficient and Available Storage Replication,” USENIX Association Berkeley, CA, Jun. 13, 2012, Retrieved from the internet [https://www.usenix.org/system/files/c… [cited by applicant]