Systems and methods for a file-level cache

US9405476B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9405476-B2
Application numberUS-201514675521-A
CountryUS
Kind codeB2
Filing dateMar 31, 2015
Priority dateFeb 15, 2011
Publication dateAug 2, 2016
Grant dateAug 2, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A multi-level cache comprises a plurality of cache levels, each configured to cache I/O request data pertaining to I/O requests of a different respective type and/or granularity. The multi-level cache may comprise a file-level cache that is configured to cache I/O request data at a file-level of granularity. A file-level cache policy may comprise file selection criteria to distinguish cacheable files from non-cacheable files. The file-level cache may monitor I/O requests within a storage stage, and may service I/O requests from a cache device.

First claim

Opening claim text (preview).

We claim: 1. A method for caching input/output (I/O) request data using a non-volatile cache, the method comprising: monitoring I/O requests on an operating system operating on a computing device; applying file selection criteria to the monitored I/O requests to identify I/O requests pertaining to cacheable files; filtering the identified I/O requests to select I/O requests of the identified I/O requests that satisfy an application selection criterion, wherein filtering a particular one of the identified I/O requests comprises, determining an application associated with the particular I/O request, and selecting the particular I/O request to be serviced using a non-volatile cache in response to the determined application satisfying the application selection criterion; and servicing the selected I/O requests determined to pertain to cacheable files and to satisfy the application selection criterion using the non-volatile cache. 2. The method of claim 1 , further comprising monitoring the I/O requests using a file filter driver. 3. The method of claim 1 , further comprising monitoring the I/O requests within a guest operating system of a virtual machine, wherein the non-volatile cache is provided by a host of the virtual machine. 4. The method of claim 1 , wherein monitoring the I/O requests comprises ignoring one or more of non-paging I/O requests and direct I/O requests. 5. The method of claim 1 , wherein servicing the particular I/O request using the non-volatile cache comprises: allocating a cache tag to associate an identifier of a cacheable file of the particular I/O request with a cache address of the non-volatile cache; and storing data of the particular I/O request on the non-volatile cache at the cache address. 6. The method of claim 1 , further comprising maintaining a plurality of cache tags to associate data of cacheable files with respective cache addresses of the non-volatile cache, wherein servicing the particular I/O request comprises: identifying a cache tag associated with a source identifier of a cacheable file of the particular I/O request; and servicing the particular I/O request using a cache address of the identified cache tag. 7. The method of claim 1 , wherein servicing the particular I/O request using the non-volatile cache comprises one of one of accessing data on the non-volatile cache, writing data to the non-volatile cache, modifying data on the non-volatile cache, and removing data on the non-volatile cache. 8. The method of claim 1 , further comprising: updating I/O request metadata to indicate that the particular I/O request pertains to a cacheable file and satisfies the application selection criterion; accessing the I/O request metadata in response to monitoring a subsequent I/O request associated with the particular I/O request; and determining by way of the I/O request metadata that the subsequent I/O request is selected to be serviced using the non-volatile cache. 9. The method of claim 8 , wherein the particular I/O request comprises one of a non-paging I/O request, a direct I/O request, a file open request, a file modify request, a file read request, and a file update request, and a file truncate request. 10. The method of claim 1 , wherein selecting the particular I/O request to be serviced using the non-volatile cache comprising matching the determined application associated with the particular I/O request to one of an application whitelist and an application blacklist. 11. The method of claim 10 , wherein the application criterion prevents I/O requests of the identified I/O requests pertaining to cacheable files that are associated with one of a backup application and a virus scanning application from being selected to be serviced using the non-volatile cache. 12. The method of claim 1 , wherein the operating system comprises a storage stack and an existing cache manager, the method further comprising servicing a cache miss in the existing cache manager using the non-volatile cache. 13. The method of claim 1 , wherein selecting the particular I/O request to be serviced using the non-volatile cache further comprises determining that a size of data for the particular I/O request satisfies a maximum size threshold and a minimum size threshold. 14. The method of claim 1 , further comprising admitting data of the selected I/O requests that pertain to cacheable files and that satisfy the application selection criterion into the non-volatile cache in accordance with a cache admission policy configured to prevent poisoning the non-volatile cache. 15. A system for caching input/output (I/O) request data using a non-volatile cache, comprising: an I/O request monitor to monitor I/O requests within a storage stack; a non-volatile cache; and a cache management system configured to apply file selection criteria to the monitored I/O requests to identify I/O requests that pertain to cacheable files, wherein the cache management system is further configured to apply an application selection criteria to the identified I/O requests that pertain to cacheable files, the application selection criterion to select I/O requests of the identified I/O requests that are associated with an application that satisfies the application selection criteria, and wherein the cache management system services the selected I/O requests that pertain to cacheable files and that satisfy the application selection criteria using the non-volatile cache. 16. The system of claim 15 , wherein the cache management system operates within a virtual machine and is configured to service the selected I/O requests using cache metadata maintained within the virtual machine, and wherein non-volatile cache operates within the host of the virtual machine. 17. The system of claim 15 , wherein the cache management system is configured to service particular one of the selected I/O requests using the non-volatile cache by; allocating a cache tag in cache metadata that associates a source identifier of the particular I/O request with a cache address of the non-volatile cache, and storing data of the particular I/O request on the non-volatile cache at the cache address. 18. The system of claim 15 , wherein the cache management system is configured to service particular one of the selected I/O requests using the non-volatile cache by; identifying a cache tag corresponding to a source identifier of the particular I/O request; and accessing data of the particular I/O request on the non-volatile cache at a cache address of the cache tag. 19. The system of claim 15 , wherein the file selection criteria comprises one of file name matching criteria, file extension criteria, file path criteria, file application association criteria, and a regular expression. 20. The system of claim 15 , wherein the I/O request monitor is configured to ignore one or more of non-paging I/O requests and direct I/O requests. 21. The system of claim 15 , wherein in response determining that a first I/O request satisfies the file selection criteria and that the first I/O request satisfies the application selection criteria, the cache management system is configured to associate the first I/O request with I/O request metadata comprising one of a source identifier and an indication that the first I/O request is selected to be serviced using the non-volatile cache, and wherein, the cache management system is configured to service a second, subsequent I/O request using the non-volatile cache in response to determining that the secon

Assignees

Inventors

Classifications

  • Non-volatile semiconductor memory arrays · CPC title

  • using selective caching, e.g. bypass · CPC title

  • In host system · CPC title

  • for peripheral storage systems, e.g. disk cache · CPC title

  • with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9405476B2 cover?
A multi-level cache comprises a plurality of cache levels, each configured to cache I/O request data pertaining to I/O requests of a different respective type and/or granularity. The multi-level cache may comprise a file-level cache that is configured to cache I/O request data at a file-level of granularity. A file-level cache policy may comprise file selection criteria to distinguish cacheable…
Who is the assignee on this patent?
Longitude Entpr Flash S A R L, Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/0888. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 02 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).