Systems and methods for a file-level cache
First Claim
Patent Images
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.
9 Assignments
0 Petitions
Accused Products
Abstract
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.
479 Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
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. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
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.
-
Specification