IP Library Granted Patent US 11,048,629
Granted Patent B2
US 11,048,629 · App. 16/569,094 · Granted Jun 29, 2021

Method, apparatus and computer program product for storing data

Inventors: Leihu Zhang (Beijing, CN); Chen Gong (Beijing, CN); Ming Zhang (Beijing, CN); Hao Fang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F12/0802G06F3/0608G06F3/0655G06F3/0673G06F3/067G06F2212/60
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,048,629
App. No.
16/569,094
Filed
Sep 12, 2019
Granted
Jun 29, 2021
Kind
B2
Art Unit
2137
USPC
711/118
Abstract

Techniques store data. Such techniques involve: in response to receiving a request for writing data to a file, determining a type of the file; determining a compression property of the data based on the determined type; determining a storage area corresponding to the data to be written in a storage device for storing the file; and storing the data into the storage area, based on the compression property. Such techniques can determine, based on a type of a file involved in an input/output (I/O) request, a compression property of the data for the I/O request, and further determine whether a data compression operation is to be performed prior to storing the data. Accordingly, the techniques can avoid an unnecessary compression operation while reducing the storage space required for storing data as much as possible, thereby improving performance of system.

Claims (91)

1. A method of storing data, comprising:

in response to receiving a request for writing data to a file, determining a type of the file;

determining a compression property of the data based on the determined type, the compression property indicating that the data is one of compressible and incompressible;

generating a tag indicating the compression property of the data;

tagging the request with the generated tag;

determining a storage area corresponding to the data to be written in a storage device for storing the file;

obtaining the compression property of the data by checking the tag of the tagged request;

in response to the obtained compression property indicating that the data is compressible, compressing the data and storing the compressed data in the storage area; and

in response to the obtained compression property indicating that the data is incompressible, avoiding compressing the data and storing the data in the storage area.

2. The method of claim 1 , wherein determining the type of the file comprises:

obtaining a file name of the file from the request; and

determining the type of the file based on the file name.

3. The method of claim 2 , wherein the file name comprises a main file name and an extension file name, and wherein determining the type based on the file name comprises:

matching the extension file name in the file name with a predetermined extension file name indicating a compressed file; and

in response to the extension file name matching the predetermined extension file name, determining that the file is a compressed file.

4. The method of claim 1 , wherein determining the type of the file comprises:

in response to the file being created, obtaining from the file a sequence of bytes indicating the type of the file; and

determining the type of the file based on the sequence of bytes.

5. The method of claim 4 , wherein determining the type based on the sequence of bytes comprises:

matching the sequence of bytes with a predetermined sequence of bytes indicating a compressed file; and

in response to the sequence of bytes matching the predetermined sequence of bytes, determining that the file is a compressed file.

6. The method of claim 1 , wherein determining the type of the file comprises:

in response to the file being created, obtaining metadata of a file system associated with the file, wherein the type of the file is recorded in the metadata of the file system; and

determining the type of the file based on the metadata of the file system.

7. The method of claim 1 , wherein determining the compression property of the data comprises:

in response to the type indicating that the file is a compressed file, determining that the data is incompressible; and

in response to the type indicating that the file is an uncompressed file, determining that the data is compressible.

8. The method of claim 1 , wherein storing the data in the storage area comprises:

in further response to the obtained compression property indicating that the data is compressible:

storing the tagged request in association with the compressed data in a cache; and

in response to the compressed data being stored in the cache, returning a response to the request; and

in further response to the obtained compression property indicating that the data is incompressible:

storing the tagged request in association with the data in the cache; and

in response to the data being stored in the cache, returning the response to the request.

9. The method of claim 8 , further comprising:

In further response to the obtained compression property indicating that the data is incompressible, flushing the data to the storage area.

10. The method of claim 8 , further comprising:

In further response to the obtained compression property indicating that the data is compressible:

determining a ratio of a first size of the compressed data to a second size of the data prior to being compressed; and

in response to the ratio being below a predetermined threshold, flushing the compressed data to the storage area.

11. A device for storing data, comprising:

at least one processing unit;

at least one memory coupled to the at least one processing unit and storing instructions which, when executed by the at least one processing unit cause the device to perform acts comprising:

in response to receiving a request for writing data to a file, determining a type of the file;

determining a compression property of the data based on the determined type, the compression property indicating that the data is one of compressible and incompressible;

generating a tag indicating the compression property of the data;

tagging the request with the generated tag;

determining a storage area corresponding to the data to be written in a storage device for storing the file;

obtaining the compression property of the data by checking the tag of the tagged request;

in response to the obtained compression property indicating that the data is compressible, compressing the data and storing the compressed data in the storage area; and

in response to the obtained compression property indicating that the data is incompressible, avoiding compressing the data and storing the data in the storage area.

12. The device of claim 11 , wherein determining the type of the file comprises:

obtaining a file name of the file from the request; and

determining the type of the file based on the file name.

13. The device of claim 12 , wherein the file name comprises a main file name and an extension file name, and wherein determining the type based on the file name comprises:

matching the extension file name in the file name with a predetermined extension file name indicating a compressed file; and

in response to the extension file name matching the predetermined extension file name, determining that the file is a compressed file.

14. The device of claim 11 , wherein determining the type of the file comprises:

in response to the file being created, obtaining from the file a sequence of bytes indicating the type of the file; and

determining the type of the file based on the sequence of bytes.

15. The device of claim 14 , wherein determining the type, based on the sequence of bytes, comprises:

matching the sequence of bytes with a predetermined sequence of bytes indicating a compressed file; and

in response to the sequence of bytes matching the predetermined sequence of bytes, determining that the file is a compressed file.

16. The device of claim 11 , wherein determining the type of the file comprises:

in response to the file being created, obtaining metadata of a file system associated with the file, wherein the type of the file is recorded in the metadata of the file system; and

determining the type of the file based on the metadata of the file system.

17. The device of claim 11 , wherein determining the compression property of the data comprises:

in response to the type indicating that the file is a compressed file, determining that the data is incompressible; and

in response to the type indicating that the file is an uncompressed file, determining that the data is compressible.

18. The device of claim 11 , wherein storing the data in the storage area comprises:

in further response to the obtained compression property indicating that the data is compressible:

storing the tagged request in association with the compressed data in a cache; and

in response to the compressed data being stored in the cache, returning a response to the request; and

in further response to the obtained compression property indicating that the data is incompressible:

storing the tagged request in association with the data in the cache; and

in response to the data being stored in the cache, returning the response to the request.

19. The device of claim 18 , wherein the stored instructions, when executed by the at least one processing unit, cause the device to perform a further act comprising:

In further response to the obtained compression property indicating that the data is incompressible, flushing the data to the storage area.

20. The device of claim 18 , wherein the stored instructions, when executed by the at least one processing unit, cause the device to perform further acts comprising:

In further response to the obtained compression property indicating that the data is compressible:

determining a ratio of a first size of the compressed data to a second size of the data prior to being compressed; and

in response to the ratio being below a predetermined threshold, flushing the compressed data to the storage area.

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

in response to receiving a request for writing data to a file, determining a type of the file;

determining a compression property of the data based on the determined type, the compression property indicating that the data is one of compressible and incompressible;

generating a tag indicating the compression property of the data;

tagging the request with the generated tag;

determining a storage area corresponding to the data to be written in a storage device for storing the file;

obtaining the compression property of the data by checking the tag of the tagged request;

in response to the obtained compression property indicating that the data is compressible, compressing the data and storing the compressed data in the storage area; and

in response to the obtained compression property indicating that the data is incompressible, avoiding compressing the data and storing the data in the storage area.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 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 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2019
From: ZHANG, LEIHU; GONG, CHEN; ZHANG, MING; FANG, HAO
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050616/0422 →
Priority Claims (1)
CN 201811261832.3 · Oct 26, 2018 · national
Continuity (1)
Related Publication 20200133858A1 · Apr 30, 2020