IP Library › Granted Patent US 10,101,938
Granted Patent B2
US 10,101,938 · App. 14/586,335 · Granted Oct 16, 2018

Data storage system selectively employing multiple data compression techniques

Inventors: Charles J. Camp (Sugar Land, TX); Andrew D. Walls (San Jose, CA)
Assignee: International Business Machines Corporation
G06F3/064G06F3/0608G06F3/0613G06F3/0688
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,101,938
App. No.
14/586,335
Granted
Oct 16, 2018
Kind
B2
Abstract

In a data storage system, a data set as compressed by a first compression technique (e.g., a hardware-based compression technique) is stored in non-volatile data storage in association with at least a particular address. In response to a subsequent garbage collection read of the particular address, control logic determines whether or not to compress the data set with a second compression technique (e.g., a software-based compression technique). In response to determining not to compress the data set with the second compression technique, the control logic writes the data set back to the non-volatile data storage as compressed by the first compression technique. In response to determining to compress the data set with the second compression technique, the control logic compresses the data set with the second compression technique and writes the data set back to the non-volatile data storage as compressed by the second compression technique.

Claims (52)

1. A method in a data storage system, the method comprising:

in response to an initial write of a data set to non-volatile data storage, storing the data set as compressed by a first compression in the non-volatile data storage in association with at least a particular address;

in response to a subsequent garbage collection read of the particular address, determining whether or not to compress the data set with an additional second compression technique different than the first compression technique that produces a smaller compressed data set, wherein the determining includes determining if the particular address is a more frequently written address or a less frequently written address;

in response to determining that the particular address is a more frequently written address, writing the data set back to the non-volatile data storage as compressed by the first compression technique;

determining compressibility of the data set using entropy analysis; and

in response to determining that the particular address is a less frequently written address and the entropy analysis indicates the data set is further compressible, compressing the data set with the second compression technique and writing the data set back to the non-volatile data storage as compressed by the second compression technique.

2. The method of claim 1 , wherein:

the first compression technique comprises a hardware-implemented compression technique;

the second compression technique comprises a software-implemented compression technique; and

the second compression technique produces a smaller compressed data set than the first compression technique.

3. The method of claim 1 , wherein determining whether or not to compress the data set with the additional second compression technique further includes determining whether or not to compress the data set based at least on a write temperature of the data set.

4. The method of claim 3 , wherein determining whether or not to compress the data set with the additional second compression technique further includes determining whether or not to compress the data set based on compressibility of the data set.

5. The method of claim 1 , and further comprising:

in response to the garbage collection read, decompressing the data set.

6. A controller for a data storage system, comprising:

an integrated circuit including control logic configured to be coupled to non-volatile data storage, wherein the control logic is configured to perform:

in response to an initial write of a data set to non-volatile data storage, storing the data set as compressed by a first compression in the non-volatile data storage in association with at least a particular address;

in response to a subsequent garbage collection read of the particular address, determining whether or not to compress the data set with an additional second compression technique different than the first compression technique that produces a smaller compressed data set, wherein the determining includes determining if the particular address is a more frequently written address or a less frequently written address;

in response to determining that the particular address is a more frequently written address, writing the data set back to the non-volatile data storage as compressed by the first compression technique;

determining compressibility of the data set using entropy analysis; and

in response to determining that the particular address is a less frequently written address and the entropy analysis indicates the data set is further compressible, compressing the data set with the second compression technique and writing the data set back to the non-volatile data storage as compressed by the second compression technique.

7. The controller of claim 6 , wherein:

the first compression technique comprises a hardware-implemented compression technique;

the second compression technique comprises a software-implemented compression technique; and

the second compression technique produces a smaller compressed data set than the first compression technique.

8. The controller of claim 6 , wherein determining whether or not to compress the data set with the addtional second compression technique further includes determining whether or not to compress the data set based at least on a write temperature of the data set.

9. The controller of claim 8 , wherein determining whether or not to compress the data set with the additional second compression technique further includes determining whether or not to compress the data set based on compressibility of the data set.

10. The controller of claim 6 , wherein the control logic is further configured to perform:

in response to the garbage collection read, decompressing the data set.

11. A data storage system, comprising the integrated circuit of claim 6 coupled to the non-volatile data storage.

12. A program product, comprising:

a storage device; and

program code stored in the storage device, wherein the program code, when executed by a control logic, causes the control logic to perform:

in response to an initial write of a data set to non-volatile data storage, storing the data set as compressed by a first compression in the non-volatile data storage in association with at least a particular address;

in response to a subsequent garbage collection read of the particular address, determining whether or not to compress the data set with an additional second compression technique different than the first compression technique that produces a smaller compressed data set, wherein the determining includes determining if the particular address is a more frequently written address or a less frequently written address;

in response to determining that the particular address is a more frequently written address, writing the data set back to the non-volatile data storage as compressed by the first compression technique;

determining compressibility of the data set using entropy analysis; and

in response to determining that the particular address is a less frequently written address and the entropy analysis indicates the data set is further compressible, compressing the data set with the second compression technique and writing the data set back to the non-volatile data storage as compressed by the second compression technique.

13. The program product of claim 12 , wherein:

the first compression technique comprises a hardware-implemented compression technique;

the second compression technique comprises a software-implemented compression technique; and

the second compression technique produces a smaller compressed data set than the first compression technique.

14. The program product of claim 12 , wherein determining whether or not to compress the data set with the additional second compression technique further includes determining whether or not to compress the data set based at least on a write temperature of the data set.

15. The program product of claim 14 , wherein determining whether or not to compress the data set with the additional second compression technique further includes determining whether or not to compress the data set based on compressibility of the data set.

16. The program product of claim 12 , wherein the program code further causes the control logic to perform:

in response to the garbage collection read, decompressing the data set.

17. The method of claim 2 , and further comprising:

after writing the data set back to the non-volatile data storage as compressed by the second compression technique and in response to a read request, reading the data set as compressed by the second compression technique from the non-volatile storage, decompressing the data set utilizing a hardware-implemented decompression technique, and transmitting the data set as decompressed.

18. The controller of claim 7 , wherein the control logic is further configured to perform:

after writing the data set back to the non-volatile data storage as compressed by the second compression technique and in response to a read request, reading the data set as compressed by the second compression technique from the non-volatile storage, decompressing the data set utilizing a hardware-implemented decompression technique, and transmitting the data set as decompressed.

19. The program product of claim 13 , wherein the program code, when executed by a control logic, causes the control logic to perform:

after writing the data set back to the non-volatile data storage as compressed by the second compression technique and in response to a read request, reading the data set as compressed by the second compression technique from the non-volatile storage, decompressing the data set utilizing a hardware-implemented decompression technique, and transmitting the data set as decompressed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: CAMP, CHARLES J.; WALLS, ANDREW D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036729/0418 →
Continuity (1)
Related Publication 20160188212A1 · Jun 30, 2016