Methods and systems for throttling writes to a caching device in response to read misses

US9665495B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9665495-B2
Application numberUS-201615347963-A
CountryUS
Kind codeB2
Filing dateNov 10, 2016
Priority dateJul 14, 2010
Publication dateMay 30, 2017
Grant dateMay 30, 2017

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 device includes a flash memory-based cache for a hard disk-based storage device and a controller that is configured to limit the rate of cache updates through a variety of mechanisms, including determinations that the data is not likely to be read back from the storage device within a time period that justifies its storage in the cache, compressing data prior to its storage in the cache, precluding storage of sequentially-accessed data in the cache, and/or throttling storage of data to the cache within predetermined write periods and/or according to user instruction.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for throttling cache updates in a storage system having a caching device and a storage device, the method comprising: for each of a plurality of write periods of the storage system, each of the write periods having an associated threshold number of permitted writes to the caching device, receiving a request to read data that is stored on the storage system, and, upon determining that the requested data is stored on the storage device, but not on the caching device, then: (i) if a number of writes to the caching device for the write period is less than or equal to the threshold number of permitted writes, reading the requested data from the storage device and storing the requested data in the caching device; otherwise, (ii) if the number of writes to the caching device for the write period is greater than the threshold number of permitted writes for the write period, reading the requested data from the storage device without storing the requested data in the caching device. 2. The method of claim 1 , wherein the threshold number of permitted writes corresponding to each of the write periods is a fixed value. 3. The method of claim 1 , wherein the threshold number of permitted writes corresponding to each of the write periods is updated periodically. 4. The method of claim 1 , wherein the threshold number of permitted writes corresponding to each of the write periods is determined by dividing a number of writes that are permitted to the caching device during a remaining lifetime of the storage system by a number of write periods left in the remaining lifetime of the storage system. 5. The method of claim 1 , wherein the requested data is compressed before being stored in the caching device. 6. The method of claim 1 , wherein the caching device is configured with a log-structured file system, and the requested data is stored at an end of a log of the log-structured file system. 7. The method of claim 1 , wherein the caching device is configured with a log-structured file system, and a compressed version of the requested data is stored at an end of a log of the log-structured file system. 8. A storage system, comprising a caching device, a storage device, and a storage controller communicatively coupled to the caching device and the storage device, the storage controller configured to: for each of a plurality of write periods of the storage system, each of the write periods having an associated threshold number of permitted writes to the caching device, receive a request to read data that is stored on the storage system, and, upon determining that the requested data is stored on the storage device, but not on the caching device, then: (i) if a number of writes to the caching device for the write period is less than or equal to the threshold number of permitted writes, read the requested data from the storage device and store the requested data in the caching device; otherwise, (ii) if the number of writes to the caching device for the write period is greater than the threshold number of permitted writes for the write period, read the requested data from the storage device without storing the requested data in the caching device. 9. The storage system of claim 8 , wherein the caching device is a flash-based caching device. 10. The storage system of claim 8 , wherein the storage device is a disk-based storage device. 11. The storage system of claim 8 , wherein the caching device and the storage device are integrated together in a single device. 12. The storage system of claim 8 , wherein the caching device and the storage device are two separate devices that are communicatively coupled to one another. 13. The storage system of claim 8 , further comprising a host interface configured to communicatively couple the storage system to a host machine. 14. A non-transitory computer-readable storage medium comprising software instructions stored thereon for throttling cache updates in a storage system having a caching device and a storage device, wherein execution of the set of instructions by a controller of the storage system causes the controller to: for each of a plurality of write periods of the storage system, each of the write periods having an associated threshold number of permitted writes to the caching device, receive a request to read data that is stored on the storage system, and, upon determining that the requested data is stored on the storage device, but not on the caching device, then: (i) if a number of writes to the caching device for the write period is less than or equal to the threshold number of permitted writes, read the requested data from the storage device and store the requested data in the caching device; otherwise, (ii) if the number of writes to the caching device for the write period is greater than the threshold number of permitted writes for the write period, read the requested data from the storage device without storing the requested data in the caching device. 15. The non-transitory computer-readable storage medium of claim 14 , wherein the threshold number of permitted writes corresponding to each of the write periods is a fixed value. 16. The non-transitory computer-readable storage medium of claim 14 , wherein the threshold number of permitted writes corresponding to each of the write periods is updated periodically. 17. The non-transitory computer-readable storage medium of claim 14 , wherein the threshold number of permitted writes corresponding to each of the write periods is determined by dividing a number of writes that are permitted to the caching device during a remaining lifetime of the storage system by a number of write periods left in the remaining lifetime of the storage system. 18. The non-transitory computer-readable storage medium of claim 14 , wherein the requested data is compressed before being stored in the caching device. 19. The non-transitory computer-readable storage medium of claim 14 , wherein the caching device is configured with a log-structured file system, and the requested data is stored at an end of a log of the log-structured file system. 20. The non-transitory computer-readable storage medium of claim 14 , wherein the caching device is configured with a log-structured file system, and a compressed version of the requested data is stored at an end of a log of the log-structured file system.

Assignees

Inventors

Classifications

  • Space efficiency improvement · CPC title

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

  • Allocation control and policies · CPC title

  • Using a specific disk cache architecture · CPC title

  • Life time enhancement · 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 US9665495B2 cover?
A storage device includes a flash memory-based cache for a hard disk-based storage device and a controller that is configured to limit the rate of cache updates through a variety of mechanisms, including determinations that the data is not likely to be read back from the storage device within a time period that justifies its storage in the cache, compressing data prior to its storage in the cac…
Who is the assignee on this patent?
Nimble Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0888. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 30 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).