IP Library Granted Patent US 9,003,113
Granted Patent B2
US 9,003,113 · App. 14/273,389 · Granted Apr 7, 2015

Methods and systems for reducing churn in flash-based cache

Inventors: Umesh Maheshwari (San Jose, CA); Varun Mehta (Los Altos Hills, CA)
Assignee: Nimble Storage, Inc.
G06F12/0246G06F12/0866G06F12/0888G06F2212/222G06F2212/28G06F2212/7205
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,003,113
App. No.
14/273,389
Granted
Apr 7, 2015
Kind
B2
Abstract

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.

Claims (21)

1. A method of throttling cache updates in a storage device having a flash memory-based cache and a disk-based storage unit, the method comprising:

determining, by a controller of the storage device, a threshold number of writes that are permitted to the flash memory-based cache per write period by dividing a remaining number of writes that can be tolerated by the flash memory-based cache of the storage device into a number of write periods remaining in an expected service lifetime for the storage device, wherein the write periods comprise periods of fixed interval and the threshold number of permitted writes per write period is updated periodically; and

for a subject one of the write periods, (i) monitoring, by the controller, a number of writes to the flash memory-based cache during the subject write period, (ii) allowing, at most, the number of writes to the flash memory-based cache during the subject write period to be equal to the determined threshold number of permitted writes for the subject write period, and (iii) if an additional number of writes to the flash memory-based cache are attempted in excess of the determined threshold number of permitted writes for the subject write period, refusing the additional number of writes to the flash memory-based cache and directing the additional number of writes to the disk-based storage unit.

2. The method of claim 1 , further comprising throttling the updates to the flash memory-based cache in accordance with user instructions concerning a data type of data that has been received at the storage device.

3. The method of claim 1 , further comprising compressing data to be stored in the flash memory-based cache prior to writing the compressed data to the flash memory-based cache.

4. The method of claim 1 , further comprising throttling the updates to the flash memory-based cache in accordance with user instructions concerning whether or not data received at the storage device is to be cached.

5. A storage device, comprising:

a flash memory-based cache;

a disk-based storage unit; and

a controller communicatively coupled to the flash memory-based cache and the disk-based storage unit, the controller configured to throttle updates to the cache by:

determining a threshold number of writes that are permitted to the flash memory-based cache per write period by dividing a remaining number of writes that can be tolerated by the flash memory-based cache of the storage device into a number of write periods remaining in an expected service lifetime for the storage device, wherein the write periods comprise periods of fixed interval and the threshold number of permitted writes per write period is updated periodically; and

for a subject one of the write periods, (i) monitoring a number of writes to the flash memory-based cache during the subject write period; (ii) allowing, at most, the number of writes to the flash memory-based cache during the subject write period to be equal to the determined threshold number of permitted writes for the subject write period; and (iii) if an additional number of writes to the flash memory-based cache are attempted in excess of the determined threshold number of permitted writes for the subject write period, refusing the additional number of writes to the flash memory-based cache and directing the additional number of writes to the disk-based storage unit.

6. The storage device of claim 5 , wherein the controller is further configured to throttle updates to the flash memory-based cache in accordance with user instructions concerning a data type of data that has been received at the storage device.

7. The storage device of claim 5 , wherein the controller is further configured to compress data to be stored in the flash memory-based cache prior to writing the compressed data to the flash memory-based cache.

8. The storage device of claim 5 , wherein the controller is further configured to throttle updates to the flash memory-based cache in accordance with user instructions concerning whether or not data received at the storage device is to be cached.

9. A non-transitory computer-readable storage medium including a set of instructions stored thereon for throttling cache updates in a storage device having a flash memory-based cache and a disk-based storage unit, wherein execution of the set of instructions by a controller of the storage device causes the controller to:

determine a threshold number of writes that are permitted to the flash memory-based cache per write period by dividing a remaining number of writes that can be tolerated by the flash memory-based cache of the storage device into a number of write periods remaining in an expected service lifetime for the storage device, wherein the write periods comprise periods of fixed interval and the threshold number of permitted writes per write period is updated periodically; and

for a subject one of the write periods, (i) monitor a number of writes to the flash memory-based cache during the subject write period; (ii) allow, at most, the number of writes to the flash memory-based cache during the subject write period to be equal to the determined threshold number of permitted writes for the subject write period; and (iii) if an additional number of writes to the flash memory-based cache are attempted in excess of the determined threshold number of permitted writes for the subject write period, refuse the additional number of writes to the flash memory-based cache and direct the additional number of writes to the disk-based storage unit.

10. The non-transitory computer-readable storage medium of claim 9 , wherein execution of the set of instructions by the controller further causes the controller to throttle the updates to the flash memory-based cache in accordance with user instructions concerning a data type of data that has been received at the storage device.

11. The non-transitory computer-readable storage medium of claim 9 , wherein execution of the set of instructions by the controller further causes the controller to compress data to be stored in the flash memory-based cache prior to writing the compressed data to the flash memory-based cache.

12. The non-transitory computer-readable storage medium of claim 9 , wherein execution of the set of instructions by the controller further causes the controller to throttle updates to the flash memory-based cache in accordance with user instructions concerning whether or not data received at the storage device is to be cached.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2017
From: NIMBLE STORAGE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042810/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2014
From: MAHESHWARI, UMESH; MEHTA, VARUN
To: NIMBLE STORAGE, INC.
Reel/Frame 032853/0924 →
Continuity (2)
Division 12836520 · Jul 14, 2010
Related Publication 20140244918A1 · Aug 28, 2014