IP Library Granted Patent US 10,013,200
Granted Patent B1
US 10,013,200 · App. 15/196,374 · Granted Jul 3, 2018

Early compression prediction in a storage system with granular block sizes

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,013,200
App. No.
15/196,374
Granted
Jul 3, 2018
Kind
B1
Abstract

Described embodiments may provide methods and systems for receiving an input/output (I/O) request by a storage system having at least one storage volume. The I/O request has associated payload data. The I/O request is performed with early prediction compression by compressing a first portion of the payload data and determining whether one or more remaining portions of the I/O request should be processed in a compressed manner or an uncompressed manner based, at least in part, upon the results of compressing the first portion of the payload data.

Claims (50)

1. A method comprising:

receiving an input/output (I/O) request by a storage system having at least one storage volume, the I/O request having associated payload data;

performing the I/O request with early prediction compression by:

compressing a first portion of the payload data; and

determining whether one or more remaining portions of the I/O request should be processed in a compressed manner or an uncompressed manner based, at least in part, upon the results of compressing the first portion of the payload data,

wherein if a utilization level of the one or more processors is below a processor utilization threshold, setting a compression threshold value to increase compression of the payload data; and

if the utilization level of the one or more processors is at or above a processor utilization threshold, setting the compression threshold value to decrease compression of the payload data; and performing the I/O request to the at least one storage volume with the payload data uncompressed if an achieved compression ratio of the first portion of the payload data has not reached a compression threshold value, wherein the I/O request comprises a request to write data to the at least one storage volume and wherein determining one or more block sizes of the at least one storage volume and a size of payload data associated with the I/O request further comprises, if the size of the payload data associated with the I/O request is greater than a largest of the one or more block sizes of the at least one storage volume: segmenting the payload data associated with the I/O request into two or more payload data segments, each payload data segment having a size associated with the largest of the one or more block sizes; and performing the I/O request with early prediction compression for each of the two or more payload data segments.

2. The method of claim 1 , further comprising:

determining one or more block sizes of the at least one storage volume and a size of the payload data associated with the I/O request; and

if the size of the payload data is less than a smallest one of the one or more block sizes, performing the I/O request to the at least one storage volume with the payload data uncompressed.

3. The method of claim 1 , further comprising, if an achieved compression ratio of the first portion of the payload data has reached the compression threshold value:

if the payload data is smaller than a given one of the one or more block sizes, performing the I/O request to the at least one storage volume with the first portion of the payload data compressed, and one or more additional portions of the payload data uncompressed.

4. The method of claim 2 , further comprising, if the payload data is not smaller than a given one of the one or more block sizes, compressing one or more additional portions of the payload data.

5. The method of claim 1 , further comprising, based upon one or more operating conditions of the storage system, adjusting the compression threshold value.

6. The method of claim 5 , further comprising:

if a free space level of the at least one storage volume is below a free space threshold, setting the compression threshold value to increase compression of the payload data; and

if the free space level of the at least one storage volume is at or above a free space threshold, setting the compression threshold value to decrease compression of the payload data.

7. The method of claim 1 , further comprising, based upon one or more operating conditions of the storage system, adjusting a size of the first portion of the payload data.

8. A system comprising:

a processor; and

memory storing computer program code that when executed on the processor causes the processor to execute an input/output (I/O) request received by a storage system having at least one storage volume operable to perform the operations of:

receiving an input/output (I/O) request by a storage system having at least one storage volume, the I/O request having associated payload data;

performing the I/O request with early prediction compression by:

compressing a first portion of the payload data; and

determining whether one or more remaining portions of the I/O request should be processed in a compressed manner or an uncompressed manner based, at least in part, upon the results of compressing the first portion of the payload data,

wherein if a utilization level of the one or more processors is below a processor utilization threshold, setting a compression threshold value to increase compression of the payload data; and

if the utilization level of the one or more processors is at or above a processor utilization threshold, setting the compression threshold value to decrease compression of the payload data; and performing the I/O request to the at least one storage volume with the payload data uncompressed if an achieved compression ratio of the first portion of the payload data has not reached a compression threshold value, wherein the I/O request comprises a request to write data to the at least one storage volume and wherein determining one or more block sizes of the at least one storage volume and a size of payload data associated with the I/O request further comprises, if the size of the payload data associated with the I/O request is greater than a largest of the one or more block sizes of the at least one storage volume: segmenting the payload data associated with the I/O request into two or more payload data segments, each payload data segment having a size associated with the largest of the one or more block sizes; and performing the I/O request with early prediction compression for each of the two or more payload data segments.

9. The system of claim 8 , wherein the computer program code is further operable to perform the operations of, if the achieved compression ratio of the first portion of the payload data has reached the compression threshold value:

if the payload data is smaller than a given one of the one or more block sizes, performing the I/O request to the at least one storage volume with the first portion of the payload data compressed, and one or more additional portions of the payload data uncompressed; and

if the payload data is not smaller than a given one of the one or more block sizes, compressing one or more additional portions of the payload data.

10. The system of claim 8 , wherein the computer program code is further operable to perform the operations of:

determining one or more block sizes of the at least one storage volume and a size of the payload data associated with the I/O request;

if the size of the payload data is less than a smallest one of the one or more block sizes, performing the I/O request to the at least one storage volume with the payload data uncompressed; and

if the payload data is not smaller than a given one of the one or more block sizes, compressing one or more additional portions of the payload data.

11. The system of claim 8 , wherein the computer program code is further operable to perform the operation of, based upon one or more operating conditions of the storage system, adjusting the compression threshold value.

12. The system of claim 11 , wherein the computer program code is further operable to perform the operations of, at least one of:

if a free space level of the at least one storage volume is below a free space threshold, setting the compression threshold value to increase compression of the payload data; and

if the free space level of the at least one storage volume is at or above a free space threshold, setting the compression threshold value to decrease compression of the payload data.

13. The system of claim 8 , wherein the computer program code is further operable to perform the operation of, based upon one or more operating conditions of the storage system, adjusting a size of the first portion of the payload data.

14. A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to execute an input/output (I/O) request received by a storage system having at least one storage volume, the computer program product comprising:

computer program code for receiving the input/output (I/O) request, the I/O request having associated payload data;

computer program code for performing the I/O request with early prediction compression by:

compressing a first portion of the payload data; and

determining whether one or more remaining portions of the I/O request should be processed in a compressed manner or an uncompressed manner based, at least in part, upon the results of compressing the first portion of the payload data;

wherein if a utilization level of the one or more processors is below a processor utilization threshold, setting a compression threshold value to increase compression of the payload data; and

if the utilization level of the one or more processors is at or above a processor utilization threshold, setting the compression threshold value to decrease compression of the payload data; and computer program code for performing the I/O request to the at least one storage volume with the payload data uncompressed if an achieved compression ratio of the first portion of the payload data has not reached a compression threshold value/wherein the I/O request comprises a request to write data to the at least one storage volume and wherein determining one or more block sizes of the at least one storage volume and a size of payload data associated with the I/O request further comprises, if the size of the payload data associated with the I/O request is greater than a largest of the one or more block sizes of the at least one storage volume: segmenting the payload data associated with the I/O request into two or more payload data segments, each payload data segment having a size associated with the largest of the one or more block sizes; and performing the I/O request with early prediction compression for each of the two or more payload data segments.

15. The computer program product of claim 14 , further comprising:

computer program code for adjusting the compression threshold value based upon one or more operating conditions of the storage system;

computer program code for setting the compression threshold value to increase compression of the payload data if a free space level of the at least one storage volume is below a free space threshold; and

computer program code for setting the compression threshold value to decrease compression of the payload data if the free space level of the at least one storage volume is at or above a free space threshold.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
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 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2016
From: SHVEIDEL, VLADIMIR; SHOIKHET, KIRILL
To: EMC CORPORATION
Reel/Frame 039394/0338 →
Cited By (2)
US 12,438,959 US 12,493,432