IP Library Granted Patent US 9,081,670
Granted Patent B2
US 9,081,670 · App. 14/273,367 · Granted Jul 14, 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,081,670
App. No.
14/273,367
Granted
Jul 14, 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 (31)

1. A method, comprising:

receiving data to be stored in a storage device having a flash memory-based cache and a disk-based storage unit;

writing an initial portion of the data to the flash memory-based cache and the disk-based storage unit;

while the initial portion is being written to the flash memo-based cache and the disk-based storage unit, monitoring an amount of the initial portion that has been written sequentially;

determining whether the amount that has been written sequentially exceeds a predetermined threshold beyond which the data can be read from the flash memory-based cache at a substantially similar data rate as from the disk-based storage unit; and

if so, determining that the data will likely be sequentially accessed, ceasing writing of the data to the flash memory-based cache and writing the remaining portion of the data only to the disk-based storage unit so as to reduce the amount of data written to the flash memory-based cache.

2. The method of claim 1 , wherein the received data comprises compressed data.

3. The method of claim 1 , further comprising throttling updates to the flash memory-based cache by permitting only a threshold number of writes per write period to the flash memory-based cache, wherein each write period comprises a period of fixed interval.

4. The method of claim 3 , wherein the updates to the flash memory-based cache are throttled in accordance with user instructions concerning whether or not the data is to be cached.

5. The method of claim 1 , further comprising compressing the data prior to writing the data to the flash memory-based cache, said compressing producing variable sized blocks of data.

6. The method of claim 1 , further comprising throttling updates to the flash memory-based cache in accordance with user instructions concerning a data type of the data.

7. 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:

receive data to be stored in the storage device;

write an initial portion of the data to the flash memory-based cache and the disk-based storage unit;

while the initial portion is being written to the flash memo-based cache and the disk-based storage unit, monitor an amount of the initial portion that has been written sequentially;

determine whether the amount that has been written sequentially exceeds a predetermined threshold beyond which the data can be read from the flash memory-based cache at a substantially similar data rate as from the disk-based storage unit; and

if so, determine that the data will likely be sequentially accessed, cease writing of the data to the flash memory-based cache and write the remaining portion of the data only to the disk-based storage unit so as to reduce the amount of data written to the flash memory-based cache.

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

9. The storage device of claim 7 , wherein the controller is further configured to throttle updates to the flash memory-based cache by permitting only a threshold number of writes per write period to the flash memory-based cache, wherein each write period comprises a period of fixed interval.

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

11. The storage device of claim 7 , 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 the data.

12. A non-transitory computer-readable storage medium including a set of instructions stored thereon, which when executed by a storage device cause the storage device to:

receive data to be stored in the storage device, the storage device having a flash memory-based cache and a disk-based storage unit;

write an initial portion of the data to the flash memory-based cache and the disk-based storage unit;

while the initial portion is being written to the flash memo-based cache and the disk-based storage unit, monitor an amount of the initial portion that has been written sequentially;

determine whether the amount that has been written sequentially exceeds a predetermined threshold beyond which the data can be read from the flash memory-based cache at a substantially similar data rate as from the disk-based storage unit; and

if so, determine that the data will likely be sequentially accessed, cease writing of the data to the flash memory-based cache and write the remaining portion of the data only to the disk-based storage unit so as to reduce the amount of data written to the flash memory-based cache.

13. The non-transitory computer-readable storage medium of claim 12 , further including instructions, which when executed by the storage device cause the storage device to compress the received data prior to writing the compressed data to the flash memory-based cache.

14. The non-transitory computer-readable storage medium of claim 12 , further including instructions, which when executed by the storage device cause the storage device to throttle updates to the flash memory-based cache by permitting only a threshold number of writes per write period to the flash memory-based cache, wherein each write period comprises a period of fixed interval.

15. The non-transitory computer-readable storage medium of claim 12 , further including instructions, which when executed by the storage device cause the storage device to throttle updates to the flash memory-based cache in accordance with user instructions concerning whether or not the data is to be cached.

16. The non-transitory computer-readable storage medium of claim 12 , further including instructions, which when executed by the storage device cause the storage device to throttle updates to the flash memory-based cache in accordance with user instructions concerning a data type of the data.

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/0816 →
Continuity (2)
Division 12836520 · Jul 14, 2010
Related Publication 20140244917A1 · Aug 28, 2014