IP Library Granted Patent US 10,346,354
Granted Patent B2
US 10,346,354 · App. 15/338,272 · Granted Jul 9, 2019

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/2842
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,346,354
App. No.
15/338,272
Filed
Oct 28, 2016
Granted
Jul 9, 2019
Kind
B2
Examiner
LI, ZHUO H
Art Unit
2133
USPC
711/133
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 (29)

1. A method comprising:

following receipt of a first incremental snapshot from a data source, creating, by a computing device and when a threshold is determined to be satisfied, a synthetic baseline snapshot with the first incremental snapshot;

modifying, by the computing device, eviction state data of a set of one or more cached data blocks that are associated with a second incremental snapshot, which precedes the first incremental snapshot in time, and that remain valid for the first incremental snapshot; and

associating, by the computing device, a local identifier of the first incremental snapshot with the set of cached data blocks.

2. The method of claim 1 , further comprising setting, by the computing device, ownership of duplicated snapshot metadata of the second incremental snapshot, which remains valid for the first incremental snapshot, as the first incremental snapshot.

3. The method of claim 1 , wherein further comprising updating, by the computing device, the eviction state data of the set of cached data blocks based, at least in part, on eviction state data of one or more data blocks received for the first incremental snapshot.

4. The method of claim 1 , further comprising determining, by the computing device, that none of the set of cached data blocks is overwritten in the first incremental snapshot based, at least in part, on snapshot metadata for the second incremental snapshot in a key-value store that comprises metadata of snapshots for a data collection.

5. The method of claim 1 , associating, by the computing device, a synthetic baseline snapshot identifier with the first incremental snapshot and snapshot metadata of the second incremental snapshot, which is determined as invalid for the first incremental snapshot with a pre-baseline snapshot identifier.

6. The method of claim 5 , wherein the pre-baseline snapshot identifier is deterministic, and represents an order of receipt of snapshots, and the synthetic baseline snapshot identifier does not collide with the pre-baseline snapshot identifier.

7. A non-transitory machine-readable medium having stored thereon instructions for reducing stable data evictions comprising machine executable code that, when executed by at least one machine, causes the machine to:

following receipt of a first incremental snapshot from a data source, create, when a threshold is determined to be satisfied, a synthetic baseline snapshot with the first incremental snapshot;

modify eviction state data of a set of one or more cached data blocks that are associated with a second incremental snapshot, which precedes the first incremental snapshot in time, and that remain valid for the first incremental snapshot; and

associate a local identifier of the first incremental snapshot with the set of cached data blocks.

8. The non-transitory machine readable medium of claim 7 , wherein the machine executable code when executed by the machine further causes the machine to set ownership of duplicated snapshot metadata of the second incremental snapshot, which remains valid for the first incremental snapshot, as the first incremental snapshot.

9. The non-transitory machine readable medium of claim 7 , wherein the machine executable code when executed by the machine further causes the machine to update the eviction state data of the set of cached data blocks based, at least in part, on eviction state data of one or more data blocks received for the first incremental snapshot.

10. The non-transitory machine readable medium of claim 7 , wherein the machine executable code when executed by the machine further causes the machine to determine that none of the set of cached data blocks is overwritten in the first incremental snapshot based, at least in part, on snapshot metadata for the second incremental snapshot in a key-value store that comprises metadata of snapshots for a data collection.

11. The non-transitory machine readable medium of claim 7 , wherein the machine executable code when executed by the machine further causes the machine to associate a synthetic baseline snapshot identifier with the first incremental snapshot and snapshot metadata of the second incremental snapshot, which is determined as invalid for the first incremental snapshot, with a pre-baseline snapshot identifier.

12. The non-transitory machine readable medium of claim 11 , wherein the pre-baseline snapshot identifier is deterministic, and represents an order of receipt of snapshots, and the synthetic baseline snapshot identifier does not collide with the pre-baseline snapshot identifier.

13. A computing device, comprising:

a memory containing a machine-readable medium comprising machine executable code having stored thereon instructions for reducing stable data evictions; and

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

following receipt of a first incremental snapshot from a data source, create, when a threshold is determined to be satisfied, a synthetic baseline snapshot with the first incremental snapshot;

modify eviction state data of a set of one or more cached data blocks that are associated with a second incremental snapshot, which precedes the first incremental snapshot in time, and that remain valid for the first incremental snapshot; and

associate a local identifier of the first incremental snapshot with the set of cached data blocks.

14. The computing device of claim 13 , wherein the processor is further configured to execute the machine executable code to set ownership of duplicated snapshot metadata of the second incremental snapshot, which remains valid for the first incremental snapshot, as the first incremental snapshot.

15. The computing device of claim 13 , wherein the processor is further configured to execute the machine executable code to update the eviction state data of the set of cached data blocks based, at least in part, on eviction state data of one or more data blocks received for the first incremental snapshot.

16. The computing device of claim 13 , wherein the processor is further configured to execute the machine executable code to determine that none of the set of cached data blocks is overwritten in the first incremental snapshot based, at least in part, on snapshot metadata for the second incremental snapshot in a key-value store that comprises metadata of snapshots for a data collection.

17. The computing device of claim 13 , wherein the processor is further configured to execute the machine executable code to associate a synthetic baseline snapshot identifier with the first incremental snapshot and snapshot metadata of the second incremental snapshot, which is determined as invalid for the first incremental snapshot, with a pre-baseline snapshot identifier.

18. The computing device of claim 17 , wherein the pre-baseline snapshot identifier is deterministic, and represents an order of receipt of snapshots, and the synthetic baseline snapshot identifier does not collide with the pre-baseline snapshot identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2016
From: KUSHWAH, AJAY PRATAP SINGH; ZHENG, LING; JAIN, SHARAD
To: NETAPP, INC.
Reel/Frame 040164/0147 →
Continuity (1)
Related Publication 20180121454A1 · May 3, 2018
Cited By (5)
US 12,530,266 US 12,561,281 US 12,578,871 US 12,664,060 US 12,737,267