IP Library › Granted Patent US 11,748,322
Granted Patent B2
US 11,748,322 · App. 17/807,447 · Granted Sep 5, 2023

Utilizing different data compression algorithms based on characteristics of a storage system

Inventors: Ethan Miller (Santa Cruz, CA); John Colgrove (Los Altos, CA); Joern Engel (Mountain View, MA); Christopher Golden (Emerald Hills, CA); Naveen Neelakantam (Mountain View, CA)
Assignee: PURE STORAGE, INC.
G06F16/22G06F3/061G06F3/064G06F3/067G06F3/0608G06F3/0638G06F16/2365
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,748,322
App. No.
17/807,447
Granted
Sep 5, 2023
Kind
B2
Abstract

Utilizing different data compression algorithms based on characteristics of a storage system, including: selecting, in dependence upon a priority for conserving processing resources or storage resources in a storage system, a data compression algorithm to utilize to compress data; detecting that at least one of an amount of processing resources available in the storage system or the amount of space available to store additional data in the storage system has changed; and responsive to detecting that at least one of the amount of processing resources available in the storage system or the amount of space available to store additional data in the storage system has changed, selecting a different data compression algorithm to utilize to compress data.

Claims (67)

1. A method comprising:

selecting, in dependence upon a priority for conserving processing resources or storage resources in a storage system, a data compression algorithm to utilize to compress data;

detecting that at least one of an amount of processing resources available in the storage system or an amount of space available to store additional data in the storage system has changed; and

responsive to detecting that at least one of the amount of processing resources available in the storage system or the amount of space available to store additional data in the storage system has changed, selecting a different data compression algorithm to utilize to compress data.

2. The method of claim 1 further comprising:

determining an expected amount of space in the storage system to be consumed within a predetermined period of time; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of space in the storage system to be consumed within the predetermined period of time.

3. The method of claim 1 further comprising:

determining, for each of a plurality of data compression algorithms, an expected amount of processing resources to be consumed by compressing the data utilizing the data compression algorithm; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of processing resources to be consumed by compressing the data utilizing the data compression algorithm.

4. The method of claim 1 further comprising:

determining, for each of a plurality of data compression algorithms, an expected amount of data reduction to be achieved by compressing the data utilizing the data compression algorithm; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of data reduction to be achieved by compressing the data utilizing the data compression algorithm.

5. The method of claim 1 further comprising:

determining, for each of a plurality of data compression algorithms, an expected decompression speed associated with decompressing the data; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected decompression speed associated with decompressing the data.

6. The method of claim 1 further comprising:

determining, for each of a plurality of data compression algorithms, an average decompression speed associated with decompressing a pool of data; and

wherein the data compression algorithm to utilize is further selected in dependence upon the average decompression speed associated with decompressing a pool of data.

7. The method of claim 1 wherein selecting the data compression algorithm to utilize to compress the data further comprises:

compressing at least a portion of the data utilizing a plurality of data compression algorithms;

identifying a data reduction level achieved by each data compression algorithm;

determining a decompression speed associated with each data compression algorithm; and

selecting the data compression algorithm to utilize to compress the data in dependence upon the data reduction level achieved by each data compression algorithm and the decompression speed associated with each data compression algorithm.

8. An apparatus, the apparatus including a computer processor and a computer memory, the computer memory including computer program instructions that, when executed, cause the apparatus to carry out the steps of:

selecting, in dependence upon a priority for conserving processing resources or storage resources in a storage system, a data compression algorithm to utilize to compress data;

detecting that at least one of an amount of processing resources available in the storage system or the amount of space available to store additional data in the storage system has changed; and

responsive to detecting that at least one of the amount of processing resources available in the storage system or the amount of space available to store additional data in the storage system has changed, selecting a different data compression algorithm to utilize to compress data.

9. The apparatus of claim 8 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining an expected amount of space in the storage system to be consumed within a predetermined period of time; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of space in the storage system to be consumed within the predetermined period of time.

10. The apparatus of claim 8 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining, for each of a plurality of data compression algorithms, an expected amount of processing resources to be consumed by compressing the data utilizing the data compression algorithm; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of processing resources to be consumed by compressing the data utilizing the data compression algorithm.

11. The apparatus of claim 8 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining, for each of a plurality of data compression algorithms, an expected amount of data reduction to be achieved by compressing the data utilizing the data compression algorithm; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of data reduction to be achieved by compressing the data utilizing the data compression algorithm.

12. The apparatus of claim 8 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining, for each of a plurality of data compression algorithms, an expected decompression speed associated with decompressing the data; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected decompression speed associated with decompressing the data.

13. The apparatus of claim 8 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining, for each of a plurality of data compression algorithms, an average decompression speed associated with decompressing a pool of data; and

wherein the data compression algorithm to utilize is further selected in dependence upon the average decompression speed associated with decompressing a pool of data.

14. The apparatus of claim 8 wherein selecting the data compression algorithm to utilize to compress the data further comprises:

compressing at least a portion of the data utilizing a plurality of data compression algorithms;

identifying a data reduction level achieved by each data compression algorithm;

determining a decompression speed associated with each data compression algorithm; and

selecting the data compression algorithm to utilize to compress the data in dependence upon the data reduction level achieved by each data compression algorithm and the decompression speed associated with each data compression algorithm.

15. A computer program product, the computer program product disposed on a non-transitory computer readable storage medium, the computer program product comprising computer program instructions that, when executed, cause an apparatus to carry out the steps of:

selecting, in dependence upon a priority for conserving processing resources or storage resources in a storage system, a data compression algorithm to utilize to compress data;

detecting that at least one of an amount of processing resources available in the storage system or the amount of space available to store additional data in the storage system has changed; and

responsive to detecting that at least one of the amount of processing resources available in the storage system or the amount of space available to store additional data in the storage system has changed, selecting a different data compression algorithm to utilize to compress data.

16. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining an expected amount of space in the storage system to be consumed within a predetermined period of time; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of space in the storage system to be consumed within the predetermined period of time.

17. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining, for each of a plurality of data compression algorithms, an expected amount of processing resources to be consumed by compressing the data utilizing the data compression algorithm; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of processing resources to be consumed by compressing the data utilizing the data compression algorithm.

18. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining, for each of a plurality of data compression algorithms, an expected amount of data reduction to be achieved by compressing the data utilizing the data compression algorithm; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected amount of data reduction to be achieved by compressing the data utilizing the data compression algorithm.

19. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining, for each of a plurality of data compression algorithms, an expected decompression speed associated with decompressing the data; and

wherein the data compression algorithm to utilize is further selected in dependence upon the expected decompression speed associated with decompressing the data.

20. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the apparatus to carry out the step of:

determining, for each of a plurality of data compression algorithms, an average decompression speed associated with decompressing a pool of data; and

wherein the data compression algorithm to utilize is further selected in dependence upon the average decompression speed associated with decompressing a pool of data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2022
From: MILLER, ETHAN; COLGROVE, JOHN; ENGEL, JOERN; GOLDEN, CHRISTOPHER; NEELAKANTAM, NAVEEN
To: PURE STORAGE, INC.
Reel/Frame 060235/0883 →
Continuity (3)
Continuation 16743024 · Jan 15, 2020
Continuation 15041307 · Feb 11, 2016
Related Publication 20220318216A1 · Oct 6, 2022