IP Library Granted Patent US 9,733,854
Granted Patent B2
US 9,733,854 · App. 14/927,824 · Granted Aug 15, 2017

Dynamic adaptive compression in network storage device

Inventors: Rajat Sharma (San Jose, CA); Umesh Maheshwari (San Jose, CA); Sandeep Karmarkar (San Jose, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/0626G06F3/065G06F3/0619G06F3/0685H03M7/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 9,733,854
App. No.
14/927,824
Granted
Aug 15, 2017
Kind
B2
Abstract

Methods, systems, and computer programs are presented for dynamic adaptive compression in a storage device. One method includes operations for setting a percentage factor for utilizing a first and a second compression algorithms, and for receiving incoming blocks in the memory of the storage device. The incoming blocks are compressed before being sent to permanent storage, where a portion of the incoming blocks are compressed with the first compression algorithm based on the percentage factor, and the remainder is compressed with the second compression algorithm. Further, the method includes determining that a processor utilization rate, of a processor in the storage device, is below a first predetermined threshold, and decreasing, in response to the determining, the percentage factor to decrease the portion of the incoming blocks that are compressed with the first compression algorithm, while the remainder of the incoming blocks is compressed with the second compression algorithm.

Claims (44)

1. A method comprising:

setting a percentage factor for utilizing a first compression algorithm and a second compression algorithm in a storage device;

receiving incoming blocks in a memory of the storage device;

compressing the incoming blocks before sending the compressed incoming blocks to permanent storage in the storage device, wherein a portion of the incoming blocks are compressed with the first compression algorithm based on the percentage factor, and a remainder of the incoming blocks is compressed with the second compression algorithm;

determining that a processor utilization rate, of a processor in the storage device, is below a first predetermined threshold; and

decreasing, in response to the determining, the percentage factor to decrease the portion of the incoming blocks that are compressed with the first compression algorithm while the remainder of the incoming blocks is compressed with the second compression algorithm.

2. The method as recited in claim 1 , wherein a number of incoming blocks compressed with the first compression algorithm over a predetermined period of time is equal to the percentage factor times a total number of incoming blocks compressed over the predetermined period of time, wherein a number of incoming blocks compressed with the second compression algorithm over the predetermined period of time is equal to the total number of incoming blocks compressed over the predetermined period of time minus the number of incoming blocks compressed with the first compression algorithm over the predetermined period of time.

3. The method as recited in claim 1 , wherein the percentage factor is adjustable to be any percentage value between zero percent and one hundred percent.

4. The method as recited in claim 1 , further comprising:

re-determining, after decreasing the percentage factor, that the processor utilization rate is still below the first predetermined threshold; and

continue decreasing, in response to the re-determining, the percentage factor while the percentage factor is greater than zero.

5. The method as recited in claim 1 , further comprising:

determining that the processor utilization rate is above a second predetermined threshold; and

increasing the percentage factor when the processor utilization rate is above the second predetermined threshold.

6. The method as recited in claim 1 , wherein the first algorithm performs compression faster than the second algorithm, wherein the second algorithm is more effective at compressing than the first algorithm.

7. The method as recited in claim 1 , wherein the processor is in a controller in the storage device, wherein the processor is utilized for processing the incoming blocks received at the storage device.

8. The method as recited in claim 1 , further comprising:

grouping a plurality of compressed blocks into a segment; and

storing the segment in the permanent storage.

9. The method as recited in claim 1 , wherein the incoming blocks belong to one or more volumes, wherein blocks within a volume are compressible utilizing the first algorithm and are compressible utilizing the second algorithm.

10. A storage device comprising:

a memory for storing incoming blocks received at a storage device;

permanent storage; and

a processor configured to set a percentage factor for utilizing a first compression algorithm and a second compression algorithm in the storage device, wherein the incoming blocks are compressed before the compressed incoming blocks are sent to the permanent storage, wherein a portion of the incoming blocks are compressed with the first compression algorithm based on the percentage factor, and a remainder of the incoming blocks is compressed with the second compression algorithm;

wherein the processor is configured to decrease, when a processor utilization rate of the processor is below a first predetermined threshold, the percentage factor to decrease the portion of the incoming blocks that are compressed with the first compression algorithm while the remainder of the incoming blocks is compressed with the second compression algorithm.

11. The storage device as recited in claim 10 , wherein a number of incoming blocks compressed with the first compression algorithm over a predetermined period of time is equal to the percentage factor times a total number of incoming blocks compressed over the predetermined period of time, wherein a number of incoming blocks compressed with the second compression algorithm over the predetermined period of time is equal to the total number of incoming blocks compressed over the predetermined period of time minus the number of incoming blocks compressed with the first compression algorithm over the predetermined period of time.

12. The storage device as recited in claim 10 , wherein the percentage factor is adjustable to be any percentage value between zero percent and one hundred percent.

13. The storage device as recited in claim 10 , wherein the processor is configured to determine, after decreasing the percentage factor, that the processor utilization rate is still below the first predetermined threshold, and continue decreasing, in response to the re-determining, the percentage factor while the percentage factor is greater than zero.

14. The storage device as recited in claim 10 , wherein the processor is configured to determine that the processor utilization rate is above a second predetermined threshold, and increase the percentage factor when the processor utilization rate is above the second predetermined threshold.

15. The storage device as recited in claim 10 , wherein the first algorithm performs compression faster than the second algorithm, wherein the second algorithm is more effective at compressing than the first algorithm.

16. A non-transitory computer-readable storage medium storing a computer program for processing data in a storage device, the computer-readable storage medium comprising:

program instructions for setting a percentage factor for utilizing a first compression algorithm and a second compression algorithm in a storage device;

program instructions for receiving incoming blocks in a memory of the storage device;

program instructions for compressing the incoming blocks before sending the compressed incoming blocks to permanent storage in the storage device, wherein a portion of the incoming blocks are compressed with the first compression algorithm based on the percentage factor, and a remainder of the incoming blocks is compressed with the second compression algorithm;

program instructions for determining that a processor utilization rate, of a processor in the storage device, is below a first predetermined threshold; and

program instructions for decreasing, in response to the determining, the percentage factor to decrease the portion of the incoming blocks that are compressed with the first compression algorithm while the remainder of the incoming blocks is compressed with the second compression algorithm.

17. The storage medium as recited in claim 16 , wherein the percentage factor is adjustable to be any percentage value between zero percent and one hundred percent.

18. The storage medium as recited in claim 16 , further comprising:

program instructions for re-determining, after decreasing the percentage factor, that the processor utilization rate is still below the first predetermined threshold; and

program instructions for continue decreasing, in response to the re-determining, the percentage factor while the percentage factor is greater than zero.

19. The storage medium as recited in claim 16 , further comprising:

program instructions for determining that the processor utilization rate is above a second predetermined threshold; and

program instructions for increasing the percentage factor when the processor utilization rate is above the second predetermined threshold.

20. The storage medium as recited in claim 16 , wherein the first algorithm performs compression faster than the second algorithm, wherein the second algorithm is more effective at compressing than the first algorithm.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2017
From: NIMBLE STORAGE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042810/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2015
From: SHARMA, RAJAT; MAHESHWARI, UMESH; KARMARKAR, SANDEEP
To: NIMBLE STORAGE, INC.
Reel/Frame 036922/0512 →
Continuity (1)
Related Publication 20170123704A1 · May 4, 2017