Victim cache that supports draining write-miss entries
US-2024264952-A1 · Aug 8, 2024 · US
US9405476B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9405476-B2 |
| Application number | US-201514675521-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 31, 2015 |
| Priority date | Feb 15, 2011 |
| Publication date | Aug 2, 2016 |
| Grant date | Aug 2, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.