IP Library › Granted Patent US 10,191,857
Granted Patent B1
US 10,191,857 · App. 15/682,699 · Granted Jan 29, 2019

Machine learning for metadata cache management

Inventor: Ori Shalev (Sunnyvale, CA)
Assignee: Pure Storage, Inc.
G06F12/126G06F12/0891G06F12/122G06F12/0253G06F12/0866G06F2212/1021G06F2212/70
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,191,857
App. No.
15/682,699
Granted
Jan 29, 2019
Kind
B1
Abstract

A system and method for efficiently caching metadata in a storage system. Addresses from a plurality of I/O accesses to the storage system are captured and then a frequency domain representation of the addresses is generated. The frequency domain representation is used to measure the randomness of the various applications which are accessing the storage system. Scores are generated based on the measure of randomness, and scores are assigned to the various regions of the logical address space. Scores are then assigned to the metadata pages which are stored in the cache based on the region of the logical address space to which the metadata pages correspond. The scores are used when determining which metadata pages to evict from the cache. The cache will attempt to evict those metadata pages which correspond to regions of the logical address space that are servicing random I/O accesses.

Claims (55)

1. A method comprising:

measuring, for each of a plurality of address spaces, an amount of randomness in a plurality of accesses to the plurality of address spaces; and

evicting metadata stored in a cache that is associated with an address space corresponding to a measured amount of randomness that is greater than a particular threshold; wherein:

measuring said amount of randomness comprises:

capturing a plurality of addresses from the plurality of accesses;

generating a first frequency domain representation of a first plurality of addresses from the captured plurality of addresses, wherein the first plurality of addresses correspond to a first region of the logical address space, and wherein the first frequency domain representation has a first frequency distribution;

measuring an amount of randomness in the first frequency distribution by adding together frequency component values above a first cutoff frequency in the first frequency distribution;

identifying the first region as a relatively low random region responsive to determining the frequency component values above the first cutoff frequency are less than a first threshold; and

identifying the first region as a relatively high random region responsive to determining the frequency component values above the first cutoff frequency are greater than a first threshold;

wherein the plurality of accesses target a logical address space.

2. The method as recited in claim 1 , wherein measuring said amount of randomness comprises generating a frequency domain representation of a plurality of addresses of the plurality of accesses.

3. The method as recited in claim 1 , further comprising:

generating a first score corresponding to the first region, wherein the first score is based on the amount of randomness in the first frequency distribution;

identifying one or more pages of first metadata corresponding to the first region which are stored in the cache;

assigning the first score to each of the one or more pages of first metadata which are stored in the cache; and

utilizing the first score when determining whether to evict the one or more pages of first metadata from the cache.

4. The method as recited in claim 1 , further comprising partitioning the logical address space into a plurality of regions.

5. The method as recited in claim 4 , further comprising generating a second frequency domain representation of a second plurality of addresses from the captured plurality of addresses, wherein the second plurality of addresses correspond to a second region of the logical address space, and wherein the second frequency domain representation has a second frequency distribution.

6. A system comprising:

a cache, wherein the cache is configured to store metadata; and

a storage controller;

wherein the storage controller is configured to:

measure, for each of a plurality of address spaces, an amount of randomness in a plurality of accesses to the plurality of address spaces; and

evict metadata stored in the cache that is associated with an address space corresponding to a measured amount of randomness that is greater than a particular threshold; wherein

measuring said amount of randomness comprises:

capturing a plurality of addresses from the plurality of accesses;

generating a first frequency domain representation of a first plurality of addresses from the captured plurality of addresses, wherein the first plurality of addresses correspond to a first region of the logical address space, and wherein the first frequency domain representation has a first frequency distribution;

measuring an amount of randomness in the first frequency distribution by adding together frequency component values above a first cutoff frequency in the first frequency distribution;

identifying the first region as a relatively low random region responsive to determining the frequency component values above the first cutoff frequency are less than a first threshold; and

identifying the first region as a relatively high random region responsive to determining the frequency component values above the first cutoff frequency are greater than a first threshold;

wherein the plurality of accesses target a logical address space.

7. The system as recited in claim 6 , wherein measuring said amount of randomness comprises generating a frequency domain representation of a plurality of addresses of the plurality of accesses.

8. The system as recited in claim 6 , wherein the storage controller is further configured to generate a first score corresponding to the first region, wherein the first score is based on the amount of randomness in the first frequency distribution, and wherein the cache is further configured to:

identify one or more pages of first metadata corresponding to the first region which are stored in the cache;

assign the first score to each of the one or more pages of first metadata which are stored in the cache; and

utilize the first score when determining whether to evict the one or more pages of first metadata from the cache.

9. The system as recited in claim 6 , wherein the storage controller is further configured to partition the logical address space into a plurality of regions.

10. The system as recited in claim 9 , wherein the storage controller is further configured to generate a second frequency domain representation of a second plurality of addresses from the captured plurality of addresses, wherein the second plurality of addresses correspond to a second region of the logical address space, and wherein the second frequency domain representation has a second frequency distribution.

11. A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by a processor to:

measure, for each of a plurality of address spaces, an amount of randomness in a plurality of accesses to the plurality of address spaces; and

evict metadata stored in a cache that is associated with an address space corresponding to a measured amount of randomness that is greater than a particular threshold; wherein:

measuring said amount of randomness comprises:

capturing a plurality of addresses from the plurality of accesses;

generating a first frequency domain representation of a first plurality of addresses from the captured plurality of addresses, wherein the first plurality of addresses correspond to a first region of the logical address space, and wherein the first frequency domain representation has a first frequency distribution;

measuring an amount of randomness in the first frequency distribution by adding together frequency component values above a first cutoff frequency in the first frequency distribution;

identifying the first region as a relatively low random region responsive to determining the frequency component values above the first cutoff frequency are less than a first threshold; and

identifying the first region as a relatively high random region responsive to determining the frequency component values above the first cutoff frequency are greater than a first threshold;

wherein the plurality of accesses target a logical address space.

12. The non-transitory computer readable storage medium as recited in claim 11 , wherein measuring said amount of randomness comprises generating a frequency domain representation of a plurality of addresses of the plurality of accesses.

13. The non-transitory computer readable storage medium as recited in claim 11 , wherein the program instructions are further executable by a processor to:

generate a first score corresponding to the first region, wherein the first score is based on the amount of randomness in the first frequency distribution;

identify one or more pages of first metadata corresponding to the first region which are stored in the cache;

assign the first score to each of the one or more pages of first metadata which are stored in the cache; and

utilize the first score when determining whether to evict the one or more pages of first metadata from the cache.

14. The non-transitory computer readable storage medium as recited in claim 11 , wherein the program instructions are further executable by a processor to partition the logical address space into a plurality of regions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2017
From: SHALEV, ORI
To: PURE STORAGE, INC.
Reel/Frame 043352/0410 →
Continuity (2)
Continuation 14939693 · Nov 12, 2015
Continuation 14151257 · Jan 9, 2014
Cited By (1)
US 12,536,140