IP Library Granted Patent US 11,281,577
Granted Patent B1
US 11,281,577 · App. 16/012,243 · Granted Mar 22, 2022

Garbage collection tuning for low drive wear

Inventors: Aswin Karumbunathan (San Francisco, CA); Yanwei Jiang (Sunnyvale, CA); Naveen Neelakantam (Mountain View, CA); Scott Chao (San Jose, CA); Bo Feng (Daly City, CA); Kiron Vijayasankar (Santa Clara, CA)
Assignee: Pure Storage, Inc.
G06F12/0253G06F3/067G06F3/0608G06F3/0641G06F3/0689G06F2212/7205G06F2212/7211
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 11,281,577
App. No.
16/012,243
Granted
Mar 22, 2022
Kind
B1
Abstract

A storage system determines a present amount of reclaimable space in storage memory. The storage system determines a garbage collection directive based on the present amount of reclaimable space in comparison to a target amount of reclaimable space. The storage system selects blocks of storage memory for a group of blocks for garbage collection. Each block selected has greater than or equal to a threshold amount of reclaimable space in accordance with the garbage collection directive. The storage system performs garbage collection, using blocks from the group.

Claims (46)

1. A storage system, comprising:

a storage array; and

a storage controller, operatively coupled with the storage array, the storage controller to:

calculating a garbage collection directive by evaluating a present amount of reclaimable space in the storage array relative to a target amount of reclaimable space in the storage array,

select blocks of storage memory that each have at least a threshold amount of reclaimable space in accordance with the garbage collection directive, for a set of blocks for garbage collection, each block of the set of blocks having an identifier written into a queue for use in selection of the blocks,

perform garbage collection in the storage array, using blocks from the set of blocks wherein to perform the garbage collection, the storage controller is to lock at least one block in the set of blocks, making the at least one block unavailable for deduplication.

2. The storage system of claim 1 , wherein, to determine the garbage collection directive, the storage controller is to:

determine the garbage collection directive as a process control output by adding at least a first term proportional to an error comprising the target amount of reclaimable space in the storage array, as a set point, minus the present amount of reclaimable space in the storage array, as a process variable, and a second term proportional to an integral of the error.

3. The storage system of claim 1 , further comprising the storage controller to:

remove at least one block from a set of blocks identified for use in deduplication for garbage collection.

4. The storage system of claim 1 , wherein the storage controller further to adjust an amount of reclaimable space from a greater value when the storage array is less full to a second value when the storage array is more full.

5. The storage system of claim 1 , wherein the storage controller further to:

adjust an amount of processing resources for the garbage collection, in accordance with the garbage collection directive.

6. The storage system of claim 1 , wherein the storage controller comprises a PI controller.

7. A method of garbage collection in a storage system, performed by the storage system, the method comprising:

determining a present amount of reclaimable space in storage memory of the storage system;

determining a garbage collection directive based on the present amount of reclaimable space in comparison to a target amount of reclaimable space;

selecting blocks of storage memory, each block having greater than a threshold amount of reclaimable space in accordance with the garbage collection directive, for a group of blocks for garbage collection, each block of the group of blocks having an identifier written into a queue for use in selection of the blocks;

performing garbage collection in the storage system, using blocks from the group; and

removing a block identified for use in deduplication from the group of blocks for garbage collection.

8. The method of claim 7 , wherein the determining the garbage collection directive comprises:

determining the garbage collection directive as a process control output of a proportional-integral-derivative (PID) controller that has as input an error comprising the target amount of reclaimable space in the storage memory minus the present amount of reclaimable space.

9. The method of claim 7 , further comprising:

changing an amount of reclaimable space from a first value to a second value, responsive to the storage memory becoming more full.

10. The method of claim 7 , further comprising:

locking a block in the group, so that the block cannot be removed from the group and used for deduplication, wherein the performing the garbage collection comprises performing the garbage collection using the locked block from the group.

11. The method of claim 7 , further comprising:

adjusting a portion of processor time for the garbage collection, in accordance with the garbage collection directive.

12. The method of claim 7 , wherein:

the garbage collection acts to reduce storage memory wear through less frequent live data relocation when the target amount of reclaimable space in the storage memory is greater.

13. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a storage controller, cause the storage controller to:

determine a present amount of reclaimable space in storage memory of a storage system;

form a garbage collection directive based on a difference between the present amount of reclaimable space and a target amount of reclaimable space in the storage memory;

write identifiers of blocks of storage memory, each block having greater than a threshold amount of reclaimable space in accordance with the garbage collection directive, into a queue of blocks for garbage collection; and

perform garbage collection in the storage system, using blocks according to the identifiers in the queue.

14. The tangible, non-transitory, computer-readable media of claim 13 , wherein to form the garbage collection directive, the storage controller is to:

determine the garbage collection directive as a process control output of a proportional-integral-derivative (PID) controller that has as input an error comprising the target amount of reclaimable space in the storage memory, as a set point, minus the present amount of reclaimable space, as a process variable.

15. The tangible, non-transitory, computer-readable media of claim 13 , wherein the instructions are to cause the storage controller to:

identify a block in the queue, for use in deduplication; and

remove an identifier of the block from the queue, so that the block is not used to perform the garbage collection but is available for the use in deduplication.

16. The tangible, non-transitory, computer-readable media of claim 13 , wherein the instructions are to cause the storage controller to:

lock a block in the queue, through metadata associated with an identifier of the block, so that the block cannot be removed for deduplication, wherein the performing the garbage collection comprises performing the garbage collection using the locked block from the queue.

17. The tangible, non-transitory, computer-readable media of claim 13 , wherein the instructions are to cause the storage controller to:

reduce the target amount of reclaimable space as the storage memory fills.

18. The tangible, non-transitory, computer-readable media of claim 13 , wherein the instructions are to cause the storage controller to:

regulate a portion of processor time for the garbage collection, in accordance with the garbage collection directive.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2018
From: KARUMBUNATHAN, ASWIN; JIANG, YANWEI; NEELAKANTAM, NAVEEN; CHAO, SCOTT; FENG, BO; VIJAYASANKAR, KIRON
To: PURE STORAGE, INC.
Reel/Frame 046131/0886 →
Cited By (7)
US 12,248,889 US 12,265,845 US 12,327,144 US 12,353,923 US 12,373,336 US 12,493,495 US 12,632,175