Systems, methods, and interfaces for adaptive cache persistence

US10346095B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10346095-B2
Application numberUS-201313829358-A
CountryUS
Kind codeB2
Filing dateMar 14, 2013
Priority dateAug 31, 2012
Publication dateJul 9, 2019
Grant dateJul 9, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A storage module may be configured to service I/O requests according to different persistence levels. The persistence level of an I/O request may relate to the storage resource(s) used to service the I/O request, the configuration of the storage resource(s), the storage mode of the resources, and so on. In some embodiments, a persistence level may relate to a cache mode of an I/O request. I/O requests pertaining to temporary or disposable data may be serviced using an ephemeral cache mode. An ephemeral cache mode may comprise storing I/O request data in cache storage without writing the data through (or back) to primary storage. Ephemeral cache data may be transferred between hosts in response to virtual machine migration.

First claim

Opening claim text (preview).

We claim: 1. A method, comprising: identifying input/output (I/O) requests that pertain to a file associated with a backing store; determining a persistence level of a plurality of persistence levels for the identified I/O requests based on a duration of storage in a computing device for data corresponding to the identified I/O requests; selecting an ephemeral cache mode from a plurality of cache modes for the identified I/O requests based on the determined persistence level, wherein each cache mode corresponds to a respective duration of storage in which the ephemeral cache mode comprises caching the data in cache storage in response to determining a low persistence level corresponding to storage of data in the computing device without redundancy, separate from the backing store, without accessing the backing store; and servicing the identified I/O requests by caching data of the file in the ephemeral cache mode, wherein: caching the data of the file in the ephemeral cache mode comprises: admitting the data of the file into the cache storage without redundantly admitting the data elsewhere, and evicting the data of the file from the cache storage, and the data is admitted and evicted from the cache storage without accessing the backing store. 2. The method of claim 1 , further comprising acknowledging completion of a write request of the identified I/O requests in response to caching data corresponding to the write request in the cache storage. 3. The method of claim 1 , further comprising selecting the ephemeral cache mode from the plurality of cache modes based on one or more of a source identifier of one or more of the identified I/O requests, a file identifier of one or more of the identified I/O requests, and an application associated with one or more of the identified I/O requests. 4. The method of claim 1 , wherein the identified I/O requests are issued by a virtual machine operating on a first host device, the method further comprising retaining the data of the file admitted into the cache storage at the first device in response to determining that the virtual machine is being transferred to operate on a second host device. 5. The method of claim 4 , further comprising populating cache storage of the second host device with at least a portion of the data of the file retained at the first host device. 6. An apparatus comprising: means for monitoring storage requests directed to a primary storage to identify storage requests that pertain to a file of the primary storage determined to be a dispensable file, where in dispensability is based on a duration of storage in a computing device for data in the dispensable file corresponding to the identified storage requests; means for caching data of the dispensable file exclusively within cache storage, separate from the primary storage, in response to determining storage of the data in the computing device without redundancy corresponding to the identified storage requests, wherein caching the data of the dispensable file comprises writing the data of the dispensable file to the cache storage without accessing the primary storage and without redundantly storing the data elsewhere; means for acknowledging completion of a request to write specified data to the dispensable file in response to caching the specified data within the cache storage and without accessing the primary storage and without redundantly storing the data elsewhere; means for servicing one or more storage requests pertaining to the specified data by use of the cache storage and without accessing the primary storage and without redundantly storing the data elsewhere; and means for removing the specified data from the cache storage without accessing the primary storage such that the specified data is evicted from the cache storage without being written to the primary storage and without redundantly storing the data elsewhere. 7. The apparatus of claim 6 , wherein caching the specified data comprises performing one or more storage operations that are independent of the primary storage. 8. The apparatus of claim 6 , wherein: the storage requests are monitored within a storage stack; and caching the specified data within the cache storage comprises performing one or more storage operations outside of the storage stack. 9. The apparatus of claim 6 , further comprising means for determining that the file of the primary storage is a dispensable file in response to determining that data written to the file does not need to be retained after one or more of a reboot, restart, and shutdown of a client associate with the file. 10. The apparatus of claim 6 , wherein the identified storage requests are generated by a virtual machine operating on a local virtual machine host, the apparatus further comprising means for pushing data of the dispensable file, cached exclusively within the cache storage in response to the identified storage requests generated by the virtual machine, to a remote virtual machine host in response to the virtual machine transferring to the remote virtual machine host. 11. The apparatus of claim 6 , wherein: the identified storage requests correspond to a virtual machine operating on a first host computing device, and the virtual machine is migrated to a second host computing device, the apparatus further comprising: means for transferring data of the dispensable file, cached exclusively within the cache storage of the first computing device to the second host in computing device. 12. The apparatus of claim 11 , further comprising means for retaining a cache tag associated with data of the dispensable file cached exclusively within the cache storage of the first host computing device in response to migrating the virtual machine to the second host computing device. 13. The apparatus of claim 6 , wherein the identified storage requests correspond to a virtual machine, the apparatus further comprising means for removing data of the dispensable file from the cache storage responsive to one or more of a reboot, restart, and shutdown of the virtual machine. 14. An apparatus, comprising: an agent configured to intercept input/output (I/O) requests pertaining to a client; a storage controller configured to assign cache modes to the intercepted I/O requests from a plurality of cache modes based on a duration of storage file data corresponding to the I/O requests will be stored in the client and storage of the file data in the client without redundancy, the plurality of cache modes including an ephemeral cache mode, wherein the storage controller is configured to assign the ephemeral cache mode to intercepted I/O requests pertaining to files of a primary storage system determined to correspond to file data that will be stored for a an amount of time that expires upon execution of one or more of a subsequent reboot, a subsequent restart, and a subsequent shutdown of the client; and a cache management system configured to service the intercepted I/O requests in accordance with the cache modes assigned thereto, wherein servicing the intercepted I/O requests assigned the ephemeral cache mode comprises caching data of the files within a cache storage device, separate from the primary storage system and without accessing the primary storage system and without redundantly storing the data elsewhere, by: writing the data of the files to the cache storage device without accessing the primary storage system and without redundantly storing the data elsewhere in response to write requests of the intercepted I/O requests assigned the ephemeral cache mode, and removing the data of the files from the cache storage device

Assignees

Inventors

Classifications

  • with main memory updating (G06F12/0806 takes precedence) · CPC title

  • for multiprocessing or multitasking · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • using selective caching, e.g. bypass · CPC title

  • Allocation of cache space to multiple users or processors · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10346095B2 cover?
A storage module may be configured to service I/O requests according to different persistence levels. The persistence level of an I/O request may relate to the storage resource(s) used to service the I/O request, the configuration of the storage resource(s), the storage mode of the resources, and so on. In some embodiments, a persistence level may relate to a cache mode of an I/O request. I/O r…
Who is the assignee on this patent?
Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/0662. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 09 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).