IP Library Granted Patent US 11,829,624
Granted Patent B2
US 11,829,624 · App. 16/843,004 · Granted Nov 28, 2023

Method, device, and computer readable medium for data deduplication

Inventors: Ming Zhang (Beijing, CN); Shuo Lv (Beijing, CN); Chen Gong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0641G06F3/067G06F3/0608G06F3/0631G06F3/0656G06F3/0665
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,829,624
App. No.
16/843,004
Granted
Nov 28, 2023
Kind
B2
Abstract

Techniques provide for data deduplication. Such techniques involve: allocating a storage area in a storage device, the storage area including a first storage segment for storing an incompressible data block and a second storage segment for storing a compressed data block, a first size of the first storage segment being greater than a second size of the second storage segment; in response to receiving a write request, determining whether data block to which the write request is related is compressible; in response to determining that the data block is incompressible, adding header information to the data block to generate a first data segment of the first size; and storing the first data segment in the first storage segment through a deduplication operation. Accordingly, such techniques can increase the flexibility and efficiency of data deduplication.

Claims (72)

1. A method for data deduplication, comprising:

receiving a first write request;

in response to receiving the first write request, determining that a first data block to which the first write request is related is incompressible, the first data block having a predetermined block size;

in response to determining that the first data block is incompressible, adding first header information to the incompressible first data block to generate a first data segment having a first size greater than the predetermined block size, wherein a first storage segment has been allocated in a storage area of a storage device, the first storage segment having the first size greater than the predetermined block size; and

performing a first deduplication operation for the incompressible first data block, the performing the first deduplication operation comprising:

creating a first logical block corresponding to the first data segment;

identifying, by the first header information, a uniqueness of the incompressible first data block, wherein the identifying the uniqueness of the incompressible first data block includes generating a first feature value from the first header information, the first feature value being a first hash value, the first header information being metadata identifying a length of the incompressible first data block, a storage location of the incompressible first data block, and the uniqueness of the incompressible first data block;

determining whether or not a set of feature values includes the first feature value, the set of feature values including different feature values for different data blocks;

in response to determining that the set of feature values includes the first feature value, mapping, by a mapper, the first logical block to the first storage segment in which the incompressible first data block has previously been stored; and

in response to determining that the set of feature values does not include the first feature value, adding the first feature value into the set of feature values, storing the incompressible first data block in the first storage segment, and mapping, by the mapper, the first logical block to the first storage segment.

2. The method of claim 1 further comprising:

receiving a second write request;

in response to receiving the second write request, determining that a second data block to which the second write request is related is compressible, the second data block having the predetermined block size;

in response to determining that the second data block is compressible:

compressing the second data block; and

adding second header information to the compressed second data block to generate a second data segment having a second size smaller than the first size of the first data segment, wherein a second storage segment has been allocated in the storage area of the storage device, the second storage segment having the second size; and

performing a second deduplication operation for the compressed second data block.

3. The method of claim 2 , wherein the performing the second deduplication operation comprises:

creating a second logical block corresponding to the second data segment;

identifying, by the second header information, a uniqueness of the compressed second data block, wherein the identifying the uniqueness of the compressed second data block includes generating a second feature value from the second header information, the second feature value being a second hash value, the second header information being metadata identifying a length of the compressed second data block, a storage location of the compressed second data block, and the uniqueness of the compressed second data block;

determining whether or not the set of feature values includes the second feature value;

in response to determining that the set of feature values includes the second feature value, mapping, by the mapper, the second logical block to the second storage segment in which the compressed second data block has previously been stored; and

in response to determining that the set of feature values does not include the second feature value, adding the second feature value into the set of feature values, storing the compressed second data block in the second storage segment, and mapping, by the mapper, the second logical block to the second storage segment.

4. The method of claim 2 , further comprising:

in further response to determining that the second data block is compressible, adding padding information to the compressed second data block to generate the second data segment of the second size.

5. The method of claim 1 , wherein determining whether the first data block is compressible or incompressible comprises:

compressing the first data block;

determining a compression ratio of the compressing of the first data block;

determining that the compression ratio is greater than a threshold; and

in response to determining that the compression ratio is greater than the threshold, determining that the first data block is incompressible.

6. An electronic device, comprising:

one or more processors; and

a storage device for storing one or more programs, the one or more programs, when executed by the one or more processors, causing the one or more processors to perform acts comprising:

receiving a write request;

in response to receiving the write request, determining that a data block to which the write request is related is incompressible, the data block having a predetermined block size;

in response to determining that the data block is incompressible, adding header information to the incompressible data block to generate a first data segment having a first size greater than the predetermined block size, wherein a first storage segment has been allocated in a storage area of a storage device, the first storage segment having the first size greater than the predetermined block size; and

performing a first deduplication operation for the incompressible first data block, the performing the first deduplication operation comprising:

creating a first logical block corresponding to the first data segment;

identifying, by the first header information, a uniqueness of the incompressible first data block, wherein the identifying the uniqueness of the incompressible first data block includes generating a first feature value from the first header information, the first feature value being a first hash value, the first header information being metadata identifying a length of the incompressible first data block, a storage location of the incompressible first data block, and the uniqueness of the incompressible first data block;

determining whether or not a set of feature values includes the first feature value, the set of feature values including different feature values for different data blocks;

in response to determining that the set of feature values includes the first feature value, mapping, by a mapper, the first logical block to the first storage segment in which the incompressible first data block has previously been a stored; and

in response to determining that the set of feature values does not include the first feature value, adding the first feature value into the set of feature values, storing the incom pressible first data block in the first storage segment, and mapping, by the mapper, the first logical block to the first storage segment.

7. The device of claim 6 , wherein the acts further comprise:

receiving a second write request;

in response to receiving the second write request, determining that a second data block to which the second write request is related is compressible, the second data block having the predetermined block size;

in response to determining that the second data block is compressible:

compressing the second data block; and

adding second header information to the compressed data block to generate a second data segment having a second size smaller than the first size of the first data segment, wherein a second storage segment has been allocated in the storage area of the storage device, the second storage segment having the second size; and

performing a second deduplication operation for the compressed second data block.

8. The device of claim 7 , wherein the performing the second deduplication operation comprises:

creating a second logical block corresponding to the second data segment;

identifying, by the second header information, a uniqueness of the compressed second data block, wherein the identifying the uniqueness of the compressed second data block includes generating a second feature value from the second header information, the second feature value being a second hash value, the second header information being metadata identifying a length of the compressed second data block, a storage location of the compressed second data block, and the uniqueness of the compressed second data block;

determining whether or not the set of feature values includes the second feature value;

in response to determining that the set of feature values includes the second feature value, mapping, by the mapper, the second logical block to the second storage segment in which the compressed second data block has previously been stored; and

in response to determining that the set of feature values does not include the second feature value, adding the second feature value into the set of feature values, storing the compressed second data block in the second storage segment, and mapping, by the mapper, the second logical block to the second storage segment.

9. The device of claim 7 , wherein the acts further comprise: determining that all storage segments in the storage area are unavailable; and

in response to determining that all storage segments in the storage area are unavailable, allocating a new storage area in the storage device.

10. The device of claim 6 , wherein determining whether the data block is compressible comprises:

compressing the data block;

determining a compression ratio of the compressing of the first data block;

determining that the compression ratio is greater than a threshold; and

in response to determining that the compression ratio is greater than the threshold, determining that the data block is incompressible.

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

receiving a write request;

in response to receiving the write request, determining that a data block to which the write request is related is incompressible, the data block having a predetermined block size;

in response to determining that the data block is incompressible, adding header information to the incompressible data block to generate a data segment having a size greater than the predetermined block size, wherein a storage segment has been allocated in a storage area of a storage device, the storage segment having the size greater than the predetermined block size; and

performing a deduplication operation for the incompressible data block, the performing the deduplication operation comprising:

creating a logical block corresponding to the data segment;

identifying, by the header information, a uniqueness of the incompressible data block, wherein the identifying the uniqueness of the incompressible data block includes generating a feature value from the header information, the feature value being a hash value, the header information being metadata identifying a length of the incompressible data block, a storage location of the incompressible data block, and the uniqueness of the incompressible data block;

determining whether or not a set of feature values includes the feature value, the set of feature values including different feature values for different data blocks;

in response to determining that the set of feature values includes the feature value, mapping, by a mapper, the logical block to the storage segment in which the incompressible data block has previously been stored; and

in response to determining that the set of feature values does not include the feature value, adding the feature value into the set of feature values, storing the incompressible data block in the storage segment, and mapping, by the mapper, the logical block to the storage segment.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: ZHANG, MING; LV, SHUO; GONG, CHEN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052734/0077 →
Priority Claims (1)
CN 201910355283.4 · Apr 29, 2019 · national
Continuity (1)
Related Publication 20200341670A1 · Oct 29, 2020