9003104

Systems and Methods for a File-Level Cache

PublishedApril 7, 2015
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

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 an I/O request pertaining to a cacheable file; updating I/O request metadata in response to a source identifier of the identified I/O request satisfying the file selection criteria; accessing the I/O request metadata in response to monitoring a subsequent I/O request associated with the source identifier; determining by way of the I/O request metadata that the subsequent I/O request pertains to a cacheable file; and servicing the subsequent I/O request using a non-volatile cache in response to the cacheable file satisfying the file selection criteria.

2

2. The method of claim 1 , further comprising monitoring the I/O requests using a file filter driver.

3

3. The method of claim 1 , further comprising monitoring the I/O requests within a guest operating system of a virtual machine, and wherein the non-volatile cache is provided by a host of the virtual machine.

4

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

5. The method of claim 1 , wherein servicing the identified subsequent I/O request comprises: allocating a cache tag to associate an identifier of the cacheable file with a cache address of the non-volatile cache; and storing data of the subsequent I/O request on the non-volatile cache at the cache address.

6

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 subsequent I/O request comprises: identifying a cache tag associated with a source identifier of the cacheable file; and servicing the I/O request using a cache address of the identified cache tag.

7

7. The method of claim 1 , wherein servicing an I/O request 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

8. The method of claim 1 , wherein the identified 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.

9

9. The method of claim 1 , further comprising servicing the subsequent I/O request in response to an application corresponding to the identified I/O request satisfying application criteria.

10

10. The method of claim 9 , wherein the application criteria prevents files associated with one of a backup application and a virus scanning application from being serviced using the non-volatile cache.

11

11. 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.

12

12. The method of claim 1 , further comprising servicing an I/O request in response to a size of data for the I/O request satisfying a maximum size threshold and a minimum size threshold.

13

13. The method of claim 1 , further comprising servicing the subsequent I/O request in response to determining that servicing the sequent I/O request satisfies a cache admission policy configured to prevent poisoning the non-volatile cache.

14

14. 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 services the identified I/O requests using the non-volatile cache, wherein the cache management system is further configured to associate a first I/O request with I/O request metadata comprising one of a source identifier and an indication of whether the first I/O request pertains to a cacheable file, and wherein in response to a second I/O request associated with the I/O request metadata, the cache management system is configured to access the I/O request metadata and to service the second I/O request using the non-volatile cache in response to determining that the I/O request metadata indicates that the second I/O request pertains to a cacheable file.

15

15. The system of claim 14 , wherein the cache management system operates within a virtual machine and is configured to service I/O requests that pertain to cacheable files using cache metadata maintained within the virtual machine, and wherein non-volatile cache operates within the host of the virtual machine.

16

16. The system of claim 14 , wherein the cache management system is configured to service an identified I/O request by; allocating a cache tag in cache metadata that associates a source identifier of the identified I/O request with a cache address of the non-volatile cache, and storing data of the identified I/O request on the non-volatile cache at the cache address.

17

17. The system of claim 14 , wherein the cache management system is configured to service an identified I/O request by; identifying a cache tag in the cache metadata corresponding to a source identifier of the identified I/O request; and accessing data of the identified I/O request on the non-volatile cache at a cache address of the cache tag.

18

18. The system of claim 14 , 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.

19

19. The system of claim 14 , wherein the I/O request monitor is configured to ignore one of non-paging I/O requests and direct I/O requests.

20

20. A non-transitory computer-readable storage medium comprising computer-readable instructions configured to cause a computing device to cache input/output (I/O) request data on a non-volatile cache, the method comprising: monitoring I/O requests within a virtual machine; applying file selection criteria to the monitored I/O requests to identify I/O requests pertaining to cacheable files; updating I/O request metadata in response to identifying an I/O request associated with a source identifier that satisfies the file selection criteria; accessing the I/O request metadata in response to monitoring a subsequent I/O request associated with the source identifier; determining that the subsequent I/O request pertains to a cacheable file based on the updated I/O request metadata; and servicing the subsequent I/O request using a non-volatile cache operating in the host for the virtual machine.

Patent Metadata

Filing Date

Unknown

Publication Date

April 7, 2015

Inventors

Vikram Joshi
Yang Luan
Michael F. Brown
Hrishikesh A. Vidwans

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “SYSTEMS AND METHODS FOR A FILE-LEVEL CACHE” (9003104). https://patentable.app/patents/9003104

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.