IP Library › Granted Patent US 12,254,187
Granted Patent B2
US 12,254,187 · App. 18/128,448 · Granted Mar 18, 2025

Method, device, and computer program product for processing compressed data

Inventor: Qinghua Ling (Beijing, CN)
Assignee: Dell Products L.P.
G06F3/0613G06F3/0656G06F3/0689
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 12,254,187
App. No.
18/128,448
Granted
Mar 18, 2025
Kind
B2
Abstract

Techniques for processing compressed data involve: determining, based on parsing of a header of a compressed data packet, a size of original data corresponding to compressed data, wherein the compressed data packet comprises the header, compressed metadata, and the compressed data. The techniques further involve: allocating, based on the size of the original data, a shared buffer space for receiving and converting the compressed metadata and the compressed data; and storing the compressed data packet in the shared buffer space. The shared buffer space can be used for the receiving and conversion processing of compressed data at the same time, without allocating a separate buffer space for each processing, thereby improving the memory efficiency. Since the allocated shared buffer space is used for both receiving processing and conversion processing, the complexity of configuration of a memory pool is also reduced.

Claims (41)

1. A method for processing compressed data, comprising:

determining, based on parsing of a header of a compressed data packet, a size of original data corresponding to compressed data, wherein the compressed data packet comprises the header, compressed metadata, and the compressed data;

allocating, based on the size of the original data, a shared buffer space for receiving and converting the compressed metadata and the compressed data to recover an original layout of the compressed data and the compressed metadata, wherein the shared buffer space comprises a first portion and a second portion;

storing the compressed data packet in the shared buffer space at least in part by storing the compressed data packet in the first portion of the shared buffer space and reserving the second portion of the shared buffer space; and

recovering the original layout of the compressed data and the compressed metadata using the second portion reserved in the shared buffer space at least in part by directing input-output vector (IOV) entries of an IOV to a plurality of compressed-data buffers (CDBs) in a CDB array and directing each CDB of the plurality of CDBs to a corresponding data buffer.

2. The method according to claim 1 , wherein allocating the shared buffer space comprises:

allocating in the shared buffer space a first page of a first size for page alignment; and

allocating in the shared buffer space a second page of a second size for storing the compressed metadata and the compressed data, wherein the first size is greater than the second size.

3. The method according to claim 2 , wherein storing the compressed data packet in the first portion of the shared buffer space comprises:

storing the compressed data packet in the first portion of the shared buffer space in a reverse-order manner.

4. The method according to claim 1 , wherein the compressed data packet comprises the compressed metadata and the compressed data that are merged through compact processing.

5. The method according to claim 1 , further comprising:

decompressing the compressed data packet to obtain the original data; and

storing the decompressed original data in the shared buffer space.

6. The method according to claim 5 , further comprising:

performing an integrity check on the decompressed original data; and

writing the original data to a cache in response to passing the integrity check.

7. A device for processing compressed data, comprising:

a processor, and

a memory coupled to the processor and storing instructions, wherein the instructions, when executed by the processor, cause the device to execute the following actions:

determining, based on parsing of a header of a compressed data packet, a size of original data corresponding to compressed data, wherein the compressed data packet comprises the header, compressed metadata, and the compressed data;

allocating, based on the size of the original data, a shared buffer space for receiving and converting the compressed metadata and the compressed data to recover an original layout of the compressed data and the compressed metadata, wherein the shared buffer space comprises a first portion and a second portion;

storing the compressed data packet in the shared buffer space at least in part by storing the compressed data packet in the first portion of the shared buffer space and reserving the second portion of the shared buffer space; and

recovering the original layout of the compressed data and the compressed metadata using the second portion reserved in the shared buffer space at least in part by directing input-output vector (IOV) entries of an IOV to a plurality of compressed-data buffers (CDBs) in a CDB array and directing each CDB of the plurality of CDBs to a corresponding data buffer.

8. The device according to claim 7 , wherein allocating the shared buffer space comprises:

allocating in the shared buffer space a first page of a first size for page alignment; and

allocating in the shared buffer space a second page of a second size for storing the compressed metadata and the compressed data, wherein the first size is greater than the second size.

9. The device according to claim 8 , wherein storing the compressed data packet in the first portion of the shared buffer space comprises:

storing the compressed data packet in the first portion of the shared buffer space in a reverse-order manner.

10. The device according to claim 7 , wherein the compressed data packet comprises the compressed metadata and the compressed data that are merged through compact processing.

11. The device according to claim 7 , wherein the actions further comprise:

decompressing the compressed data packet to obtain the original data; and

storing the decompressed original data in the shared buffer space.

12. The device according to claim 11 , wherein the actions further comprise:

performing an integrity check on the decompressed original data; and

writing the original data to a cache in response to passing the integrity check.

13. A computer program product having a non-transitory computer readable medium which stores a set of instructions for processing compressed data; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

determining, based on parsing of a header of a compressed data packet, a size of original data corresponding to compressed data, wherein the compressed data packet comprises the header, compressed metadata, and the compressed data;

allocating, based on the size of the original data, a shared buffer space for receiving and converting the compressed metadata and the compressed data to recover an original layout of the compressed data and the compressed metadata, wherein the shared buffer space comprises a first portion and a second portion;

storing the compressed data packet in the shared buffer space at least in part by storing the compressed data packet in the first portion of the shared buffer space and reserving the second portion of the shared buffer space; and

recovering the original layout of the compressed data and the compressed metadata using the second portion reserved in the shared buffer space at least in part by directing input-output vector (IOV) entries of an IOV to a plurality of compressed-data buffers (CDBs) in a CDB array and directing each CDB of the plurality of CDBs to a corresponding data buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2023
From: LING, QINGHUA
To: DELL PRODUCTS L.P.
Reel/Frame 063614/0615 →
Priority Claims (1)
CN 202211211484.5 · Sep 30, 2022 · national
Continuity (1)
Related Publication 20240111428A1 · Apr 4, 2024
References Cited (10)
US 6366289B1 · Johns · 2002 [cited by examiner]
US 6625671B1 · Collette · 2003 [cited by examiner]
US 8667212B2 · McWilliams et al. · 2014 [cited by applicant]
US 8880862B2 · Fallon et al. · 2014 [cited by applicant]
US 9122579B2 · Flynn et al. · 2015 [cited by applicant]
US 9432298B1 · Smith · 2016 [cited by applicant]
US 20200225655A1 · Cella et al. · 2020 [cited by applicant]
US 20210117328A1 · Chen · 2021 [cited by examiner]
US 20220084156A1 · Kothandaraman · 2022 [cited by examiner]
US 20230236725A1 · Madan · 2023 [cited by examiner]