IP Library Granted Patent US 9,697,133
Granted Patent B2
US 9,697,133 · App. 15/218,299 · Granted Jul 4, 2017

Methods and systems for erasing a segment from a flash cache

Inventor: Umesh Maheshwari (San Jose, CA)
Assignee: NIMBLE STORAGE, INC.
G06F12/0891G06F3/065G06F3/0619G06F3/0688G06F12/0246G06F12/0253G06F12/0638G06F12/0802G06F12/0866G06F12/0873G06F12/12G11C7/1072G11C14/0018G06F2212/1044G06F2212/205G06F2212/222G06F2212/224G06F2212/604G06F2212/69G06F2212/702G06F2212/7201G06F2212/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,697,133
App. No.
15/218,299
Granted
Jul 4, 2017
Kind
B2
Abstract

A storage device made up of multiple storage media is configured such that one such media serves as a cache for data stored on another of such media. The device includes a controller configured to manage the cache by consolidating information concerning obsolete data stored in the cache with information concerning data no longer desired to be stored in the cache, and erase segments of the cache containing one or more of the blocks of obsolete data and the blocks of data that are no longer desired to be stored in the cache to produce reclaimed segments of the cache.

Claims (28)

1. A method for performing garbage collection on a collection of segments stored on a flash cache, each of the segments including a plurality of blocks, the method comprising:

determining a temperature of each of the blocks within each of the segments;

determining whether each of the blocks within each of the segments is obsolete;

selecting a segment from the collection of segments based on a first and second characteristic of each of the blocks within each of the segments, wherein the first characteristic is the determined temperature of the block, and the second characteristic is whether the block was determined to be obsolete; and

erasing the selected segment from the flash cache to produce a reclaimed segment of the flash cache.

2. The method of claim 1 , wherein a cache management process determines the temperature of each of the blocks within each of the segments.

3. The method of claim 2 , wherein a garbage collection process determines whether each of the blocks within each of the segments is obsolete.

4. The method of claim 3 , wherein the temperature of each of the blocks within each of the segments is provided by the cache management process to the garbage collection process.

5. The method of claim 1 , further comprising, for each of the blocks within each of the segments, determining whether the block is cold based on the temperature of the block.

6. The method of claim 1 , further comprising, prior to erasing the selected segment from the flash cache, copying at least one non-obsolete and non-cold block from the selected segment to a segment not belonging to the collection of segments.

7. The method of claim 1 , wherein for each of the blocks within each of the segments, the temperature of the block indicates a likelihood that the block will be accessed.

8. The method of claim 1 , wherein for each of the blocks within each of the segments, the block is determined to be obsolete if a more recent version of the block is present on the flash cache.

9. The method of claim 1 , wherein for each of the blocks within each of the segments, the block is determined to be obsolete if the block will no longer be accessed.

10. The method of claim 1 , wherein the collection of segments is further stored on one or more hard disks.

11. A storage system, comprising (i) a flash cache that stores a collection of segments, each of the segments storing a plurality of blocks, and (ii) a controller communicatively coupled to the flash cache, wherein the controller is configured to:

determine a temperature of each of the blocks within each of the segments;

determine whether each of the blocks within each of the segments is obsolete;

select a segment from the collection of segments based on a first and second characteristic of each of the blocks within each of the segments, wherein the first characteristic is the determined temperature of the block, and the second characteristic is whether the block was determined to be obsolete; and

erase the selected segment from the flash cache to produce a reclaimed segment of the flash cache.

12. The storage system of claim 11 , wherein a cache management process determines the temperature of each of the blocks within each of the segments.

13. The storage system of claim 12 , wherein a garbage collection process determines whether each of the blocks within each of the segments is obsolete.

14. The storage system of claim 13 , wherein the controller is further configured to provide a temperature of each of the blocks within each of the segments from the cache management process to the garbage collection process.

15. The storage system of claim 11 , wherein the controller is further configured to, for each of the blocks within each of the segments, determine whether the block is cold based on the temperature of the block.

16. The storage system of claim 11 , wherein the controller is further configured to, prior to erasing the selected segment from the flash cache, copy at least one non-obsolete and non-cold block from the selected segment to a segment not belonging to the collection of segments.

17. The storage system of claim 11 , wherein for each of the blocks within each of the segments, the temperature of the block indicates a likelihood that the block will be accessed.

18. The storage system of claim 11 , wherein for each of the blocks within each of the segments, the controller is configured to determine the block to be obsolete if a more recent version of the block is present on the flash cache.

19. The storage system of claim 11 , wherein for each of the blocks within each of the segments, the controller is configured to determine the block to be obsolete if the block will no longer be accessed.

20. The storage system of claim 11 , further comprising one or more hard disks that are configured to store the collection of segments.

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 Aug 8, 2016
From: MAHESHWARI, UMESH
To: NIMBLE STORAGE, INC.
Reel/Frame 039371/0412 →
Continuity (8)
Continuation 15052531 · Feb 24, 2016
Continuation 14873520 · Oct 27, 2015
Continuation 14750734 · Jun 25, 2015
Continuation 14656568 · Mar 12, 2015
Continuation 14221894 · Mar 21, 2014
Continuation 13595211 · Aug 27, 2012
Continuation 12636693 · Dec 11, 2009
Related Publication 20160335012A1 · Nov 17, 2016