IP Library Granted Patent US 9,501,417
Granted Patent B2
US 9,501,417 · App. 14/953,970 · Granted Nov 22, 2016

Methods and systems for caching data in a storage system based on user input

Inventors: Umesh Maheshwari (San Jose, CA); Varun Mehta (Los Altos Hills, CA)
Assignee: Nimble Storage, Inc.
G06F12/0888G06F12/0246G06F12/0866G06F2212/1044G06F2212/222G06F2212/28G06F2212/466G06F2212/604G06F2212/7202G06F2212/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,501,417
App. No.
14/953,970
Granted
Nov 22, 2016
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 (34)

1. A method for a storage system, the storage system including a storage controller, a flash-based cache and a disk-based storage unit, the storage controller communicatively coupled to the flash-based cache and the disk-based storage unit, the method comprising:

receiving, by the storage controller and from a user of the storage system, information regarding a dataset;

based on the information regarding the dataset, determining by the storage controller whether or not the dataset should be cached; and

if the dataset should not be cached, writing by the storage controller the dataset only to the disk-based storage unit;

otherwise, start writing the dataset to both the flash-based cache and the disk-based storage unit, and if a size of an initial portion of the dataset written to the flash-based cache and the disk-based storage unit grows beyond a threshold size, writing a remainder of the dataset only to the disk-based storage unit.

2. The method of claim 1 , wherein the information regarding the dataset is received from the user through a management interface of the storage system.

3. The method of claim 1 , further comprising:

storing by the storage controller the information regarding the dataset as metadata with the dataset.

4. The method of claim 1 , wherein the information regarding the dataset comprises a data type of the dataset.

5. The method of claim 1 , wherein the information regarding the dataset indicates that the dataset comprises a database log.

6. The method of claim 5 , further comprising:

based on the information regarding the dataset indicating that the dataset comprises a database log, determining by the storage controller that the dataset should not be cached.

7. The method of claim 1 , wherein the information regarding the dataset indicates whether or not the dataset should be cached.

8. A storage system, comprising a flash-based cache, a disk-based storage unit, and a storage controller, the storage controller (i) communicatively coupled to the flash-based cache and the disk-based storage unit; and (ii) configured to:

receive, from a user of the storage system, information regarding a dataset;

based on the information regarding the dataset, determine whether or not the dataset should be cached; and

if the dataset should not be cached, write the dataset only to the disk-based storage unit;

otherwise, start writing the dataset to both the flash-based cache and the disk-based storage unit, and if a size of an initial portion of the dataset written to the flash-based cache and the disk-based storage unit grows beyond a threshold size, write a remainder of the dataset only to the disk-based storage unit.

9. The storage system of claim 8 , wherein the information regarding the dataset is received from the user through a management interface of the storage system.

10. The storage system of claim 8 , wherein the storage controller is further configured to store the information regarding the dataset as metadata with the dataset.

11. The storage system of claim 8 , wherein the information regarding the dataset comprises a data type of the dataset.

12. The storage system of claim 8 , wherein the information regarding the dataset indicates that the dataset comprises a database log.

13. The storage system of claim 12 , wherein the storage controller is further configured to, based on the information regarding the dataset indicating that the dataset comprises a database log, determine that the dataset should not be cached.

14. The storage system of claim 8 , wherein the information regarding the dataset indicates whether or not the dataset should be cached.

15. A non-transitory computer-readable storage medium comprising software instructions that, when executed by a controller of a storage system, cause the controller to:

receive, from a user of the storage system, information regarding a dataset;

based on the information regarding the dataset, determine whether or not the dataset should be cached; and

if the dataset should not be cached, write the dataset only to the disk-based storage unit;

otherwise, start writing the dataset to both the flash-based cache and the disk-based storage unit, and if a size of an initial portion of the dataset written to the flash-based cache and the disk-based storage unit grows beyond a threshold size, write a remainder of the dataset only to the disk-based storage unit.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the information regarding the dataset is received from the user through a management interface of the storage system.

17. The non-transitory computer-readable storage medium of claim 15 , further comprising software instructions that, when executed by the controller, cause the controller to store the information regarding the dataset as metadata with the dataset.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the information regarding the dataset comprises a data type of the dataset.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the information regarding the dataset indicates that the dataset comprises a database log.

20. The non-transitory computer-readable storage medium of claim 19 , further comprising software instructions that, when executed by the controller, cause the controller to, based on the information regarding the dataset indicating that the dataset comprises a database log, determine that the dataset should not 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 Nov 30, 2015
From: MAHESHWARI, UMESH; MEHTA, VARUN
To: NIMBLE STORAGE, INC.
Reel/Frame 037167/0235 →
Continuity (3)
Continuation 14473992 · Aug 29, 2014
Continuation 12836520 · Jul 14, 2010
Related Publication 20160077971A1 · Mar 17, 2016