Systems and methods for a file-level cache
AssigneeIntelligent Intellectual Property Holdings 2 LLC
InventorsVikram Joshi, Yang Luan, Michael F. Brown, Hrishikesh A. Vidwans
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.