IP Library Granted Patent US 10,678,436
Granted Patent B1
US 10,678,436 · App. 15/991,976 · Granted Jun 9, 2020

Using a PID controller to opportunistically compress more data during garbage collection

Inventors: Yanwei Jiang (Sunnyvale, CA); Aswin Karumbunathan (San Francisco, CA); Naveen Neelakantam (Mountain View, CA); Kiron Vijayasankar (Santa Clara, CA); Bo Feng (Daly City, CA); Joern Engel (Mountain View, CA)
Assignee: Pure Storage, Inc.
G06F3/0608G06F3/0652G06F3/0661G06F3/0679G06F2212/7205H03M7/30
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 10,678,436
App. No.
15/991,976
Granted
Jun 9, 2020
Kind
B1
Abstract

A storage system performs garbage collection with data compression. A storage controller in the storage system determines a garbage collection directive by evaluating the amount of reclaimable space relative to a target amount of reclaimable space. Garbage collection is performed using data compression tunable to compression aggressiveness according to the garbage collection directive.

Claims (38)

1. A storage system, comprising:

a storage array;

a storage controller, operatively coupled with the storage array; the storage controller configured to: determine 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; and

perform garbage collection in the storage array, using data compression tuned to compression aggressiveness according to the garbage collection directive, wherein

a cost or benefit of the data compression is determined, over a range of parameter values or compression algorithms, relative to a rate of the garbage collection; and,

the data compression performed by the storage controller is tuned to compress live data from the reclaimable space over a range of the compression aggressiveness according to the garbage collection directive, to direct the rate of the garbage collection in accordance with the cost or benefit.

2. The storage system of claim 1 , wherein; to determine the garbage collection directive, the storage controller is configured 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 , wherein the storage controller is tuned to select from a plurality of compression algorithms according to the garbage collection directive.

4. The storage system of claim 1 , wherein the data compression used by the storage controller is tuned through a parameter within a compression algorithm according to the garbage collection directive.

5. The storage system of claim 1 , wherein the storage controller is tuned to select proportions of data from the reclaimable space for two or more levels of the compression aggressiveness according to the garbage collection directive.

6. The storage system of claim 1 , wherein the storage controller is tuned to select live data for the data compression according to life expectancy of the live data.

7. The storage system of claim 1 , wherein the storage controller comprises a PT controller, a PID controller having a zero coefficient for a derivative of an error term, or a PID controller having a non-zero coefficient for a derivative of the error term.

8. 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, 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 or proportional-integral (PI) 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; and

performing garbage collection in the storage memory, using data compression tuned to compression aggressiveness according to the garbage collection directive.

9. The method of claim 8 , further comprising:

selecting from a plurality of compression algorithms according to the garbage collection directive; for the garbage collection.

10. The method of claim 8 , further comprising:

tuning a compression algorithm through a parameter according to the garbage collection directive, for the garbage collection.

11. The method of claim 8 , further comprising:

selecting proportions of data from the reclaimable space for two or more levels of the compression aggressiveness according to the garbage collection directive, for the garbage collection.

12. 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, 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 or proportional-integral (PI) 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:

tune data compression aggressiveness according to the garbage collection directive; and

perform garbage collection in the storage memory, with data compression, using the tuned data compression aggressiveness.

13. The tangible; non-transitory computer-readable media of claim 12 , wherein to tune the data compression aggressiveness; the instructions are to cause the storage controller to:

select from a plurality of compression algorithms according to the garbage collection directive, for the data compression as used in performing the garbage collection.

14. The tangible; non-transitory computer-readable media of claim 12 , wherein to tune the data compression aggressiveness, the instructions are to cause the storage controller to:

tune a compression algorithm through a parameter according to the garbage collection directive, for the data compression as used in performing the garbage collection.

15. The tangible; non-transitory computer-readable media of claim 12 , wherein to tune the data compression aggressiveness, the instructions are to cause the storage controller to:

select proportions of data from the reclaimable space for two or more levels of the compression aggressiveness according to the garbage collection directive, for the data compression as used in performing the garbage collection.

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

determine life expectancy of live data, based on timestamps or sequence numbers; and

select the live data for the data compression according to the life expectancy of the live data.

17. The tangible, non-transitory computer-readable media of claim 12 , wherein the tuned data compression aggressiveness directs a rate of the garbage collection in accordance with a determined cost or benefit of the data compression aggressiveness relative to the rate of the garbage collection.

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 May 31, 2018
From: NEELAKANTAM, NAVEEN; JIANG, YANWEI; KARUMBUNATHAN, ASWIN; VIJAYASANKAR, KIRON; FENG, BO; ENGEL, JOERN
To: PURE STORAGE, INC.
Reel/Frame 045955/0792 →
Cited By (4)
US 12,204,988 US 12,254,204 US 12,663,922 US 12,710,879