IP Library › Granted Patent US 10,852,993
Granted Patent B2
US 10,852,993 · App. 16/261,906 · Granted Dec 1, 2020

Adaptive compression mode

Inventors: Philippe Armangau (Acton, MA); Sorin Faibish (Newton, MA); Daniel E. Cummins (Hudson, NH)
Assignee: EMC IP Holding Company LLC
G06F3/0661G06F3/0608G06F3/0679
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,852,993
App. No.
16/261,906
Filed
Jan 30, 2019
Granted
Dec 1, 2020
Kind
B2
Art Unit
2137
USPC
711/103
Abstract

Techniques for data processing may include: receiving, at a data storage system, a write operation that writes a data chunk; selecting, in accordance with one or more criteria related to load of at least one of the data storage system and the hardware device, a compression level to be used in connection with compressing the data chunk; issuing a request to a hardware device to perform compression processing that compresses the data chunk in accordance with the compression level selected and generates a compressed form of the data chunk; and storing the compressed form of the data chunk on a non-volatile storage device. The criteria may include any one or more of processor workload of the data storage system, write cache level, response time of the hardware device, and read load.

Claims (54)

1. A method of data processing comprising:

receiving, at a data storage system, a write operation that writes a data chunk;

selecting, in accordance with criteria related to load of a hardware device that compresses and decompresses data, a compression level to be used in connection with compressing the data chunk, wherein the criteria include a read load related to decompression requests sent to the hardware device, a measured response time of the hardware device denoting an amount of time it takes the hardware device to generate an output with respect to compression and decompression requests, and a current level of cache consumed for storing write data, and wherein the current level of cache consumed for storing write data indicates a write load of compression requests sent to the hardware device;

issuing a request to the hardware device to perform compression processing that compresses the data chunk in accordance with the compression level selected and generates a compressed form of the data chunk; and

storing the compressed form of the data chunk on a non-volatile storage device.

2. The method of claim 1 , wherein the compression level is selected from a plurality of defined compression levels corresponding to providing a plurality of corresponding expected levels of compressibility.

3. The method of claim 2 , wherein the plurality of compression levels has a first ranking denoting a relative ordering of the plurality of compression levels from a highest expected compressibility level to a lowest expected compressibility level.

4. The method of claim 3 , wherein each of the plurality of compression levels is associated with one of a plurality of value ranges that indicates that said each compression level is selected in said selecting when the processor load denotes a value in the one value range specified for said each compression level.

5. The method of claim 4 , wherein one of the plurality of compression levels ranked in the first ranking as having the highest expected compressibility level is selected when the processor load is included in a lowest one of the plurality of value ranges, and wherein another one of the plurality of compression levels ranked in the first ranking as having the lowest expected compressibility level is selected when the processor load is included in a highest one of the plurality of value ranges.

6. The method of claim 3 , wherein the plurality of compression levels has a second ranking denoting a relative ordering of the plurality of compression levels from a highest expected computational intensity to perform compression to a lowest expected computational intensity to perform compression.

7. The method of claim 6 , wherein the one of the plurality of compression levels ranked in the first ranking as having the highest expected compressibility level is also ranked in the second ranking as having the highest expected computational intensity, and wherein the another one of the plurality of compression levels ranked in the first ranking as having the lowest expected compressibility level is also ranked in the second ranking as having the lowest expected computational intensity.

8. The method of claim 7 , wherein the plurality of compression levels has a third ranking denoting a relative ordering of the plurality of compression levels from a highest expected compression throughput to a lowest expected compression throughput.

9. The method of claim 8 , wherein the one of the plurality of compression levels ranked in the first ranking as having the highest expected compressibility level and ranked in the second ranking as having the highest expected computational intensity is also ranked in the third ranking as having the lowest expected compression throughput, and wherein the another one of the plurality of compression levels ranked in the first ranking as having the lowest expected compressibility level and ranked in the second ranking as having the lowest expected computational intensity is also ranked in the third ranking as having the highest expected compression throughput.

10. The method of claim 2 , wherein the criteria include processor load determined with respect to one or more processors of the data storage system, and wherein the processor load is measured as processor utilization.

11. The method of claim 2 , wherein the hardware device includes at least one processor used to compress and decompress data provided as an input to the hardware device.

12. The method of claim 11 , wherein the hardware device includes hardware accelerators to compress and decompress data provided as an input to the hardware device.

13. The method of claim 11 , wherein the at least one processor of the hardware device is a co-processor used to offload compression and decompression processing from one or more processors of the data storage system, and wherein said co-processor performs said compression processing that compresses the data chunk in accordance with the compression level selected and generates the compressed form of the data chunk.

14. The method of claim 1 , wherein the compression processing that compresses the data chunk in accordance with the compression level selected and generates the compressed form of the data chunk is performed inline as part of I/O path processing when writing the data chunk.

15. The method of claim 1 , wherein the compression processing that compresses the data chunk in accordance with the compression level selected and generates the compressed form of the data chunk is not performed inline as part of I/O path processing when writing the data chunk.

16. A method of data processing comprising:

receiving, at a data storage system, a write operation that writes a data chunk;

selecting, in accordance with one or more criteria related to load of at least one of the data storage system and the hardware device, a compression level to be used in connection with compressing the data chunk;

issuing a request to a hardware device to perform compression processing that compresses the data chunk in accordance with the compression level selected and generates a compressed form of the data chunk;

storing the compressed form of the data chunk on a non-volatile storage device;

determining whether a current read load is above a first specified threshold, whether measured throughput of the hardware device is below a second specified threshold, and whether the compression level selected has an associated expected compression throughput that exceeds a third specified threshold; and

responsive to determining the current read load is above the first specified threshold, the measured throughput of the hardware device is below the second specified threshold, and the compression level selected has the associated expected compression throughput that exceeds the third specified threshold, performing processing that reduces a current rate at which decompressed data is sent to the hardware device for decompressing.

17. A system comprising:

at least one processor; and

a memory comprising code stored thereon that, when executed, performs a method of data processing comprising:

receiving, at a data storage system, a write operation that writes a data chunk;

selecting, in accordance with criteria related to load of a hardware device that compresses and decompresses data, a compression level to be used in connection with compressing the data chunk, wherein the criteria include a read load related to decompression requests sent to the hardware device, a measured response time of the hardware device denoting an amount of time it takes the hardware device to generate an output with respect to compression and decompression requests, and a current level of cache consumed for storing write data, and wherein the current level of cache consumed for storing write data indicates a write load of compression requests sent to the hardware device;

issuing a request to the hardware device to perform compression processing that compresses the data chunk in accordance with the compression level selected and generates a compressed form of the data chunk; and

storing the compressed form of the data chunk on a non-volatile storage device.

18. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of data processing comprising:

receiving, at a data storage system, a write operation that writes a data chunk;

selecting, in accordance with criteria related to load of a hardware device that compresses and decompresses data, a compression level to be used in connection with compressing the data chunk, wherein the criteria include a read load related to decompression requests sent to the hardware device, a measured response time of the hardware device denoting an amount of time it takes the hardware device to generate an output with respect to compression and decompression requests, and a current level of cache consumed for storing write data, and wherein the current level of cache consumed for storing write data indicates a write load of compression requests sent to the hardware device;

issuing a request to the hardware device to perform compression processing that compresses the data chunk in accordance with the compression level selected and generates a compressed form of the data chunk; and

storing the compressed form of the data chunk on a non-volatile storage device.

19. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of data processing comprising:

receiving, at a data storage system, a write operation that writes a data chunk;

selecting, in accordance with one or more criteria related to load of at least one of the data storage system and the hardware device, a compression level to be used in connection with compressing the data chunk;

issuing a request to a hardware device to perform compression processing that compresses the data chunk in accordance with the compression level selected and generates a compressed form of the data chunk;

storing the compressed form of the data chunk on a non-volatile storage device;

determining whether a current read load is above a first specified threshold, whether measured throughput of the hardware device is below a second specified threshold, and whether the compression level selected has an associated expected compression throughput that exceeds a third specified threshold; and

responsive to determining the current read load is above the first specified threshold, the measured throughput of the hardware device is below the second specified threshold, and the compression level selected has the associated expected compression throughput that exceeds the third specified threshold, performing processing that reduces a current rate at which decompressed data is sent to the hardware device for decompressing.

20. A system comprising:

at least one processor; and

a memory comprising code stored thereon that, when executed, performs a method of data processing comprising:

receiving, at a data storage system, a write operation that writes a data chunk;

selecting, in accordance with one or more criteria related to load of at least one of the data storage system and the hardware device, a compression level to be used in connection with compressing the data chunk;

issuing a request to a hardware device to perform compression processing that compresses the data chunk in accordance with the compression level selected and generates a compressed form of the data chunk;

storing the compressed form of the data chunk on a non-volatile storage device;

determining whether a current read load is above a first specified threshold, whether measured throughput of the hardware device is below a second specified threshold, and whether the compression level selected has an associated expected compression throughput that exceeds a third specified threshold; and

responsive to determining the current read load is above the first specified threshold, the measured throughput of the hardware device is below the second specified threshold, and the compression level selected has the associated expected compression throughput that exceeds the third specified threshold, performing processing that reduces a current rate at which decompressed data is sent to the hardware device for decompressing.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2019
From: ARMANGAU, PHILIPPE; FAIBISH, SORIN; CUMMINS, DANIEL E.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 048188/0333 →
Continuity (1)
Related Publication 20200241805A1 · Jul 30, 2020