Systems and methods for a multi-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 at each of a plurality of layers of a storage stack, each cache level of a plurality of cache levels configured to cache I/O request data of a different respective layer of the storage stack; and
in each of the plurality of cache levels;
maintaining cache metadata associating I/O request data cached within the respective cache level with cache addresses of the non-volatile cache device,applying respective selection criteria to the monitored I/O requests to identify I/O requests that are cacheable within the respective cache level, andservicing cacheable I/O requests that satisfy the selection criteria within the respective cache level using the non-volatile cache device.
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. A cache device manager may allocate cache storage space to each of the cache levels. Each cache level maintains respective cache metadata that associates I/O request data with respective cache address. The cache levels monitor I/O requests within a storage stack, apply selection criteria to identify cacheable I/O requests, and service cacheable I/O requests using the cache storage device.
98 Citations
21 Claims
-
1. A method for caching input/output (I/O) request data using a non-volatile cache, the method comprising:
-
monitoring I/O requests at each of a plurality of layers of a storage stack, each cache level of a plurality of cache levels configured to cache I/O request data of a different respective layer of the storage stack; and in each of the plurality of cache levels; maintaining cache metadata associating I/O request data cached within the respective cache level with cache addresses of the non-volatile cache device, applying respective selection criteria to the monitored I/O requests to identify I/O requests that are cacheable within the respective cache level, and servicing cacheable I/O requests that satisfy the selection criteria within the respective cache level using the non-volatile cache device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for caching data on a non-volatile cache storage device, comprising:
-
a non-volatile cache storage device; a multi-level cache comprising an I/O request monitor configured to monitor I/O requests at each of a plurality of layers of a storage stack; and a plurality of cache levels, each cache level configured to cache I/O request data of a respective granularity of the storage stack, wherein each cache level is configured to maintain cache metadata associating I/O request data with respective cache addresses of the non-volatile cache storage device, to apply respective selection criteria to monitored I/O requests to identify I/O requests that are cacheable within the respective cache level, and to service cacheable I/O requests within the respective cache level using the non-volatile cache storage device. - View Dependent Claims (16, 17, 18)
-
-
19. A non-transitory computer-readable storage medium comprising instructions to cause a computing device to perform a method for caching I/O request data on a cache device, the method comprising:
-
monitoring I/O requests at each of a plurality of layers of a storage stack, each cache level configured to cache I/O request data of a different respective layer of the storage stack; and in each of a plurality of cache levels, maintaining respective cache metadata associating I/O request data with cache addresses of the cache device, applying respective selection criteria to the monitored I/O requests to identify I/O requests that are cacheable within the respective cache level, and servicing I/O requests that satisfy the selection criteria within the respective cache level using the cache device; wherein the selection criteria of a cache level comprises one of file selection criteria, volume selection criteria, and disk selection criteria. - View Dependent Claims (20, 21)
-
Specification