IP Library Granted Patent US 12670081
Granted Patent B1
US 12670081 · App. 19/454,267 · Granted Jun 30, 2026

Prefetching read caches based on usage patterns

Inventors: Matthew Christopher McMullan (Bellevue, WA); Pathirat Kosakanchit (Seattle, WA); Ying Fairweather (Sammamish, WA); Conor Marks McAvity (Olympia, WA); Porter Michael Smith (Portland, OR)
Assignee: Qumulo, Inc.
G06F11/3433G06F11/324G06F12/0871
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 12670081
App. No.
19/454,267
Granted
Jun 30, 2026
Kind
B1
Abstract

Embodiments prefetch read caches based on usage patterns. A workload session associated with one or more requests may be employed to perform actions, including: collecting one or more pattern handlers associated with an identifier of the workload session and a file system item; collecting one or more locations of data designated for promotion from a source cache to a target cache based on the one or more pattern handlers' evaluation of a usage pattern associated with the workload session; collecting one or more prefetch requests from the one or more pattern handlers, wherein each prefetch request includes one or more portions of the one or more locations; executing one or more prefetch jobs to promote the data designated for promotion from the source cache to the target cache; or the like.

Claims (106)

1 . A method for managing data in a file system over a network using one or more processors to execute instructions that are configured to cause performance of actions, comprising:

employing a workload session associated with one or more requests to perform further actions, including:

collecting one or more pattern handlers associated with an identifier of the workload session and a file system item;

collecting one or more locations of data designated for promotion from a source cache to a target cache based on the one or more pattern handlers' evaluation of a usage pattern associated with the workload session;

collecting one or more prefetch requests from the one or more pattern handlers, wherein each prefetch request includes one or more portions of the one or more locations; and

executing one or more prefetch jobs to promote the data designated for promotion from the source cache to the target cache; and

obtaining a user interface that includes one or more display panels for content that includes one or more cache performance metrics and other information associated with the file system, wherein the content is dynamically transformed and arranged for display to a user based on user interaction telemetry, user feedback or telemetry metrics.

2 . The method of claim 1 , further comprising:

obtaining one or more other requests associated with a client of the file system; and

employing information associated with the one or more other requests to collect the workload session, wherein the information includes a client identifier and one or more file system item identifiers.

3 . The method of claim 1 , further comprising:

obtaining one or more other requests associated with a client of the file system that are unassociated with the workload session or another workload session;

obtaining a new workload session based on a client identifier and one or more file system item identifiers associated with the one or more other requests;

instantiating one or more new pattern handlers that are associated with the new workload session; and

employing the one or more new pattern handlers to collect one or more other locations of other data designated for promotion from the source cache to the target cache.

4 . The method of claim 1 , further comprising:

collecting a match score from each pattern handler, wherein the match score represents a confidence value that the usage pattern associated with the workload session corresponds to a target usage pattern associated with the pattern handler; and

using the match score from each pattern handler to perform additional actions, including:

allocating one or more prefetch resources to each pattern handler based on its match score; and

terminating one or more pattern handlers associated with a match score below a threshold value.

5 . The method of claim 1 , further comprising:

collecting a cache distance metric from each pattern handler of the one or more pattern handlers, wherein the cache distance metric represents a distance between data that is promoted to the target cache and a current access position in the workload session; and

using the cache distance metric to perform additional actions, including:

prioritizing one or more first prefetch requests from one or more first pattern handlers that report a first cache distance metric over one or more second prefetch requests from one or more second pattern handlers that report a second cache distance metric, wherein the first cache distance metric is less than the second cache distance metric.

6 . The method of claim 1 , further comprising:

obtaining one or more additional pattern handlers associated with the workload session;

collecting one or more first subscriptions to one or more first file system items from a first pattern handler of the one or more additional pattern handlers;

collecting one or more second subscriptions to one or more second file system items from a second pattern handler of the one or more additional pattern handlers;

obtaining an overlap between the one or more first subscriptions and the one or more second subscriptions based on one or more shared file system items; and

merging the first pattern handler and the second pattern handler into a merged pattern handler based on the overlap; and

associating the merged pattern handler with the workload session.

7 . The method of claim 1 , further comprising:

obtaining a work limit that includes one or more of an outstanding prefetch job count limit or an aggregate data volume limit;

obtaining a current resource utilization based on one or more of a number of executing prefetch jobs or a size of data being promoted to the target cache; and

using the current resource utilization and the work limit to delay execution of one or more pending prefetch jobs until the current resource utilization falls below the work limit.

8 . The method of claim 1 , further comprising:

collecting one or more completed prefetch jobs;

updating a prefetch index to reflect data promoted by one or more completed prefetch jobs and available in the target cache;

obtaining one or more additional prefetch requests from the one or more pattern handlers absent one or more additional requests from a client of the file system; and

using the one or more additional prefetch requests to perform further actions, including:

generating one or more additional prefetch jobs; and

executing the one or more additional prefetch jobs to promote additional data from the source cache to the target cache.

9 . A network computer for managing data in a file system over a network, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that are configured to cause performance of actions, including:

employing a workload session associated with one or more requests to perform further actions, including:

collecting one or more pattern handlers associated with an identifier of the workload session and a file system item;

collecting one or more locations of data designated for promotion from a source cache to a target cache based on the one or more pattern handlers' evaluation of a usage pattern associated with the workload session;

collecting one or more prefetch requests from the one or more pattern handlers, wherein each prefetch request includes one or more portions of the one or more locations; and

executing one or more prefetch jobs to promote the data designated for promotion from the source cache to the target cache; and

obtaining a user interface that includes one or more display panels for content that includes one or more cache performance metrics and other information associated with the file system, wherein the content is dynamically transformed and arranged for display to a user based on user interaction telemetry, user feedback or telemetry metrics.

10 . The network computer of claim 9 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

obtaining one or more other requests associated with a client of the file system; and

employing information associated with the one or more other requests to collect the workload session, wherein the information includes a client identifier and one or more file system item identifiers.

11 . The network computer of claim 9 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

obtaining one or more other requests associated with a client of the file system that are unassociated with the workload session or another workload session;

obtaining a new workload session based on a client identifier and one or more file system item identifiers associated with the one or more other requests;

instantiating one or more new pattern handlers that are associated with the new workload session; and

employing the one or more new pattern handlers to collect one or more other locations of other data designated for promotion from the source cache to the target cache.

12 . The network computer of claim 9 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

collecting a match score from each pattern handler, wherein the match score represents a confidence value that the usage pattern associated with the workload session corresponds to a target usage pattern associated with the pattern handler; and

using the match score from each pattern handler to perform additional actions, including:

allocating one or more prefetch resources to each pattern handler based on its match score; and

terminating one or more pattern handlers associated with a match score below a threshold value.

13 . The network computer of claim 9 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

collecting a cache distance metric from each pattern handler of the one or more pattern handlers, wherein the cache distance metric represents a distance between data that is promoted to the target cache and a current access position in the workload session; and

using the cache distance metric to perform additional actions, including:

prioritizing one or more first prefetch requests from one or more first pattern handlers that report a first cache distance metric over one or more second prefetch requests from one or more second pattern handlers that report a second cache distance metric, wherein the first cache distance metric is less than the second cache distance metric.

14 . The network computer of claim 9 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

obtaining one or more additional pattern handlers associated with the workload session;

collecting one or more first subscriptions to one or more first file system items from a first pattern handler of the one or more additional pattern handlers;

collecting one or more second subscriptions to one or more second file system items from a second pattern handler of the one or more additional pattern handlers;

obtaining an overlap between the one or more first subscriptions and the one or more second subscriptions based on one or more shared file system items; and

merging the first pattern handler and the second pattern handler into a merged pattern handler based on the overlap; and

associating the merged pattern handler with the workload session.

15 . The network computer of claim 9 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

obtaining a work limit that includes one or more of an outstanding prefetch job count limit or an aggregate data volume limit;

obtaining a current resource utilization based on one or more of a number of executing prefetch jobs or a size of data being promoted to the target cache; and

using the current resource utilization and the work limit to delay execution of one or more pending prefetch jobs until the current resource utilization falls below the work limit.

16 . The network computer of claim 9 , wherein the one or more processors execute instructions that are configured to cause performance of actions, further comprising:

collecting one or more completed prefetch jobs;

updating a prefetch index to reflect data promoted by one or more completed prefetch jobs and available in the target cache;

obtaining one or more additional prefetch requests from the one or more pattern handlers absent one or more additional requests from a client of the file system; and

using the one or more additional prefetch requests to perform further actions, including:

generating one or more additional prefetch jobs; and

executing the one or more additional prefetch jobs to promote additional data from the source cache to the target cache.

17 . A processor readable non-transitory storage media that includes instructions for managing data in a file system over a network, wherein execution of the instructions by one or more processors on one or more network computers performs actions, comprising:

employing a workload session associated with one or more requests to perform further actions, including:

collecting one or more pattern handlers associated with an identifier of the workload session and a file system item;

collecting one or more locations of data designated for promotion from a source cache to a target cache based on the one or more pattern handlers' evaluation of a usage pattern associated with the workload session;

collecting one or more prefetch requests from the one or more pattern handlers, wherein each prefetch request includes one or more portions of the one or more locations; and

executing one or more prefetch jobs to promote the data designated for promotion from the source cache to the target cache; and

obtaining a user interface that includes one or more display panels for content that includes one or more cache performance metrics and other information associated with the file system, wherein the content is dynamically transformed and arranged for display to a user based on user interaction telemetry, user feedback or telemetry metrics.

18 . The media of claim 17 , further comprising:

obtaining one or more other requests associated with a client of the file system; and

employing information associated with the one or more other requests to collect the workload session, wherein the information includes a client identifier and one or more file system item identifiers.

19 . The media of claim 17 , further comprising:

obtaining one or more other requests associated with a client of the file system that are unassociated with the workload session or another workload session;

obtaining a new workload session based on a client identifier and one or more file system item identifiers associated with the one or more other requests;

instantiating one or more new pattern handlers that are associated with the new workload session; and

employing the one or more new pattern handlers to collect one or more other locations of other data designated for promotion from the source cache to the target cache.

20 . The media of claim 17 , further comprising:

collecting a match score from each pattern handler, wherein the match score represents a confidence value that the usage pattern associated with the workload session corresponds to a target usage pattern associated with the pattern handler; and

using the match score from each pattern handler to perform additional actions, including:

allocating one or more prefetch resources to each pattern handler based on its match score; and

terminating one or more pattern handlers associated with a match score below a threshold value.