IP Library Granted Patent US 11,507,274
Granted Patent B2
US 11,507,274 · App. 17/077,885 · Granted Nov 22, 2022

System and method to use dictionaries in LZ4 block format compression

Inventors: Andrew Butcher (Cedar Park, TX); Shyamkumar Iyer (Cedar Park, TX); Glen Sescila (Austin, TX)
Assignee: Dell Products L.P.
G06F3/0608G06F3/064G06F3/0661G06F3/0673H03M7/3088
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,507,274
App. No.
17/077,885
Granted
Nov 22, 2022
Kind
B2
Abstract

An information handling system for compressing data includes a data storage device and a processor. The data storage device stores a dictionary and an uncompressed data block. The processor prepends the dictionary to the uncompressed data block, determines, from the uncompressed data block, a literal data string and a match data string where the match data string is a matching entry of the dictionary, and compresses the uncompressed data block into a compressed data block that includes the literal data string and an offset pointer that points to the matching entry.

Claims (50)

1. An information handling system, comprising:

a data storage device including a first dictionary and a first uncompressed data block; and

a processor configured to:

prepend the first dictionary to the first uncompressed data block;

determine, from the first uncompressed data block, a first literal data string and a first match data string, the first match data string being a first matching entry of the first dictionary; and

compress the first uncompressed data block into a first compressed data block that includes the first literal data string and a first offset pointer, the first offset pointer having a first offset that is greater than an offset of a start of the first literal data string and that points to the first matching entry in the prepended first dictionary.

2. The information handling system of claim 1 , wherein the processor is further configured to:

determine, from the first uncompressed data block, a second literal data string and a second match data string, the second match data string being a matching entry of a sliding window; and

further compress the first uncompressed data block into the first compressed data block that further includes the second literal data string and a second offset pointer, the second offset pointer having a second offset that is less than the offset of the start of the first literal data string and that points into the sliding window.

3. The information handling system of claim 1 , wherein the processor is further configured to:

append a second uncompressed data block to the first uncompressed data block;

determine, from the second uncompressed data block, a second literal data string and a second match data string, the second match data string being a second matching entry of the first dictionary; and

compress the second uncompressed data block into the first compressed data block that further includes the second literal data string and a second offset pointer that points to the second matching entry.

4. The information handling system of claim 1 , wherein first block metadata associated with the first uncompressed data block includes information that identifies the first dictionary.

5. The information handling system of claim 4 , wherein second block metadata associated with the first compressed data block includes the information.

6. The information handling system of claim 1 , wherein the first compressed data block includes information that identifies the first dictionary.

7. The information handling system of claim 6 , wherein the information is included in a first in order sequence of the first compressed data block.

8. The information handling system of claim 1 , wherein the processor is further configured to:

prepend a second dictionary to a second uncompressed data block;

determine, from the second uncompressed data block, a second literal data string and a second match data string, the second match data string being a second matching entry of the second dictionary; and

compress the second uncompressed data block into a second compressed data block that includes the second literal data string and a second offset pointer that points to the second matching entry.

9. The information handling system of claim 1 , wherein, in compressing the first uncompressed data block, the processor utilizes an LZ4 data compression algorithm.

10. A data storage device for a distributed storage array, the data storage device comprising:

a data interface for receiving a first dictionary and a first uncompressed data block; and

a processor configured to instantiate a data compressor, the data compressor to:

prepend the first dictionary to the first uncompressed data block;

determine, from the first uncompressed data block, a first literal data string and a first match data string, the first match data string being a first matching entry of the first dictionary; and

compress the first uncompressed data block into a first compressed data block that includes the first literal data string and a first offset pointer, the first offset pointer having a first offset that is greater than an offset of a start of the first literal data string and that points to the first matching entry in the prepended first dictionary.

11. A method, comprising:

prepending a first dictionary to a first uncompressed data block;

determining, from the first uncompressed data block, a first literal data string and a first match data string, the first match data string being a first matching entry of the first dictionary; and

compressing the first uncompressed data block into a first compressed data block that includes the first literal data string and a first offset pointer, the first offset pointer having a first offset that is greater than an offset of a start of the first literal data string and that points to the first matching entry in the prepended first dictionary.

12. The method of claim 11 , further comprising:

determining, from the first uncompressed data block, a second literal data string and a second match data string, the second match data string being a matching entry of a sliding window; and

further compressing the first uncompressed data block into the first compressed data block that further includes the second literal data string and a second offset pointer, the second offset pointer having a second offset that is less than the offset of the start of the first literal data string and that points into the sliding window.

13. The method of claim 11 , further comprising:

receiving the first dictionary from a device configured to perform the compressing.

14. The method of claim 13 , further comprising:

appending a second uncompressed data block to the first uncompressed data block;

determining, from the second uncompressed data block, a second literal data string and a second match data string, the second match data string being a second matching entry of the first dictionary; and

compressing the second uncompressed data block into the first compressed data block that further includes the second literal data string and a second offset pointer that points to the second matching entry.

15. The method of claim 11 , wherein first block metadata associated with the first uncompressed data block includes information that identifies the first dictionary.

16. The method of claim 15 , wherein second block metadata associated with the first compressed data block includes the information.

17. The method of claim 11 , wherein the first compressed data block includes information that identifies the first dictionary.

18. The method of claim 17 , wherein the information is included in a first in order sequence of the first compressed data block.

19. The method of claim 11 , further comprising:

prepending a second dictionary to a second uncompressed data block;

determining, from the second uncompressed data block, a second literal data string and a second match data string, the second match data string being a second matching entry of the second dictionary; and

compressing the second uncompressed data block into a second compressed data block that includes the second literal data string and a second offset pointer that points to the second matching entry.

20. The method of claim 11 , wherein, in compressing the first uncompressed data block, an LZ4 data compression algorithm compressed the first uncompressed data block.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2020
From: BUTCHER, ANDREW; IYER, SHYAMKUMAR; SESCILA, GLEN
To: DELL PRODUCTS, LP
Reel/Frame 054143/0982 →
Cited By (1)
US 12,360,990