IP Library › Granted Patent US 12,019,890
Granted Patent B2
US 12,019,890 · App. 17/648,874 · Granted Jun 25, 2024

Adjustable deduplication method, apparatus, and computer program product

Inventors: Ren Ren (Shanghai, CN); Chen Wang (Shenzhen, CN); Haijun Dai (Chengdu, CN); Fangfang Zhu (Xi'an, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F3/0641G06F3/0608G06F3/0673
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,019,890
App. No.
17/648,874
Granted
Jun 25, 2024
Kind
B2
Abstract

A data processing method in a storage system is provided. The method includes: when the storage system is under a first load, performing an inline deduplication operation; and when the storage system is under a second load, directly storing a received second data block without performing the inline deduplication operation, where the first load is less than the second load.

Claims (69)

1. A method, the method comprising:

calculating a first fingerprint of a first data block, wherein the method is an adjustable deduplication method for determining whether or not to perform an inline deduplication operation based on a storage system load;

performing the inline deduplication operation on the first data block by querying a fingerprint table based on the first fingerprint when the storage system load of a storage system is a first load, the first load including a first central processing unit (CPU) usage, the querying the fingerprint table comprising:

loading, from a plurality of fingerprint tables, the fingerprint table into a memory without loading all of the plurality of fingerprint tables into the memory based on a relationship between fingerprint distribution and the fingerprint table;

calculating a second fingerprint of a second data block;

directly storing the second data block without performing any inline deduplication operation when the storage system load is reduced to a second load, the second load including a second CPU usage; and

recording a mapping entry between the second fingerprint and a first storage address of the second data block, wherein the mapping entry describes a mapping between the second fingerprint and the first storage address of the second data block.

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

after the recording the mapping entry between the second fingerprint and the first storage address, deduplicating, according to the second fingerprint, the second data block in the storage system in an offline manner.

3. The method according to claim 2 , wherein deduplicating the second data block comprises:

querying, based on the second fingerprint, the fingerprint table to determine whether the fingerprint table comprises a first fingerprint entry, wherein the first fingerprint entry comprises a mapping between the second fingerprint and a second storage address, and the second storage address stores a data block that has a same content as the second data block; and

establishing a mapping between a logical address of the second data block and the second fingerprint in the first fingerprint entry when the fingerprint table comprises the first fingerprint entry.

4. The method according to claim 3 , further comprising:

deleting the mapping entry between the second fingerprint and the first storage address of the second data block.

5. The method according to claim 1 , wherein deduplicating the second data block comprises:

querying, based on the second fingerprint, the fingerprint table to determine whether the fingerprint table comprises a first fingerprint entry, wherein the first fingerprint entry comprises a mapping between the second fingerprint and a second storage address, and the second storage address stores a data block that has a same content as the second data block;

adding a second fingerprint entry to the fingerprint table when the fingerprint table does not comprise the first fingerprint entry, wherein the second fingerprint entry comprises a mapping between the second fingerprint and a third storage address, and the third storage address stores the second data block migrated by the storage system from the first storage address; and

establishing a mapping between a logical address of the second data block and the second fingerprint.

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

selecting the first storage address from storage addresses in a plurality of mapping entries recorded in a log, and migrating the second data block at the first storage address to the third storage address.

7. The method according to claim 1 , wherein the recording the mapping entry between the second fingerprint and the first storage address of the second data block comprises:

recording, in a log, the mapping entry between the second fingerprint and the first storage address of the second data block.

8. The method according to claim 7 , further comprising:

establishing a mapping between a logical address of a data block stored at another storage address other than the first storage address in a plurality of mapping entries recorded in the log and the second fingerprint in the fingerprint table, when the plurality of mapping entries recorded in the log each comprises the second fingerprint and storage addresses in the plurality of mapping entries are different.

9. The method according to claim 8 , further comprising:

deleting the plurality of mapping entries.

10. The method according to claim 8 , wherein the method further comprises:

selecting the first storage address from the storage addresses in the plurality of mapping entries recorded in the log, and migrating the second data block at the first storage address to a third storage address.

11. The method according to claim 1 , wherein the first load and the second load are further related to at least one of:

memory usage or network performance.

12. A device, comprising:

an interface, configured to receive a first data block and a second data block, wherein the device is an adjustable deduplication device for determining whether or not to perform an inline deduplication operation based on a storage system load; and

a processor, configured to:

calculate a first fingerprint of the first data block;

perform the inline deduplication operation on the first data block by querying a fingerprint table based on the first fingerprint when the storage system load of a storage system is a first load, the first load including a first central processing unit (CPU) usage, the querying the fingerprint table comprising:

loading, from a plurality of fingerprint tables, the fingerprint table into a memory without loading all of the plurality of fingerprint tables into the memory based on a relationship between fingerprint distribution and the fingerprint table;

calculate a second fingerprint of the second data block;

directly store the second data block without performing any inline deduplication operation when the storage system load is reduced to a second load, the second load including a second CPU usage; and

record a mapping entry between the second fingerprint and a first storage address of the second data block, wherein the mapping entry describes a mapping between the second fingerprint and the first storage address of the second data block.

13. The device according to claim 12 , wherein the processor is further configured to:

deduplicate the second data block in the storage system according to the second fingerprint in an offline manner.

14. The device according to claim 13 , wherein the processor is configured to:

query, based on the second fingerprint, the fingerprint table to determine whether the fingerprint table comprises a first fingerprint entry, wherein the first fingerprint entry comprises a mapping between the second fingerprint and a second storage address, and the second storage address stores a data block that has a same content as the second data block; and

establish a mapping between a logical address of the second data block and the second fingerprint in the first fingerprint entry when the fingerprint table comprises the first fingerprint entry.

15. The device according to claim 14 , wherein the processor is further configured to:

delete the mapping entry between the second fingerprint and the first storage address of the second data block.

16. The device according to claim 12 , wherein the processor is configured to:

query, based on the second fingerprint, the fingerprint table to determine whether the fingerprint table comprises a first fingerprint entry, wherein the first fingerprint entry comprises a mapping between the second fingerprint and a second storage address, and the second storage address stores a data block that has a same content as the second data block;

add a second fingerprint entry to the fingerprint table when the fingerprint table does not comprise the first fingerprint entry, wherein the second fingerprint entry comprises a mapping between the second fingerprint and a third storage address, and the third storage address stores the second data block migrated by the storage system from the first storage address; and

establish a mapping between a logical address of the second data block and the second fingerprint.

17. The device according to claim 16 , wherein the processor is configured to:

select the first storage address from storage addresses in a plurality of mapping entries recorded in a log, and migrate the second data block at the first storage address to the third storage address.

18. The device according to claim 12 , wherein the processor is further configured to:

record in a log the mapping entry between the second fingerprint and the first storage address of the second data block.

19. The device according to claim 18 , wherein the processor is configured to:

establish a mapping between a logical address of a data block stored at another storage address other than the first storage address in a plurality of mapping entries recorded in the log and the second fingerprint in the fingerprint table, when the plurality of mapping entries recorded in the log each comprises the second fingerprint and storage addresses in the plurality of mapping entries are different.

20. The device according to claim 19 , wherein the processor is further configured to:

delete the plurality of mapping entries.

21. The device according to claim 19 , wherein the processor is configured to:

select the first storage address from the storage addresses in the plurality of mapping entries, and migrate the second data block at the first storage address to a third storage address.

22. The device according to claim 12 , wherein the first load and the second load are further related to at least of:

memory usage or network performance.

23. A non-transitory computer program product for determining whether or not to perform an inline deduplication operation based on a storage system load, wherein the non-transitory computer program product comprises one or more instructions, and when a processor of a computer executes the one or more instructions, the processor is configured to perform:

calculating a first fingerprint of a first data block;

performing the inline deduplication operation on the first data block by querying a fingerprint table based on the first fingerprint when the storage system load of a storage system is under a first load, the first load including a first central processing unit (CPU) usage, the querying the fingerprint table comprising:

loading, from a plurality of fingerprint tables, the fingerprint table into a memory without loading all of the plurality of fingerprint tables into the memory based on a relationship between fingerprint distribution and the fingerprint table;

calculating a second fingerprint of a second data block;

directly storing the second data block without performing any inline deduplication operation when the storage system load is reduced to a second load, the second load including a second CPU usage; and

recording a mapping entry between the second fingerprint and a first storage address of the second data block, wherein the mapping entry describes a mapping between the second fingerprint and the first storage address of the second data block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2024
From: REN, REN; WANG, CHEN; DAI, HAIJUN; ZHU, FANGFANG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 067306/0255 →
Continuity (2)
Continuation PCTCN2019097804 · Jul 26, 2019
Related Publication 20220147256A1 · May 12, 2022