IP Library › Granted Patent US 12,430,306
Granted Patent B2
US 12,430,306 · App. 18/939,942 · Granted Sep 30, 2025

Method, apparatus for purging data fingerprint and electronic device, storage medium

Inventor: Peilin Mao (Beijing, CN)
Assignee: New H3C Cloud Technologies Co., Ltd.
G06F16/215
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,430,306
App. No.
18/939,942
Granted
Sep 30, 2025
Kind
B2
Abstract

Disclosed are a method, apparatus, for purging data fingerprint and electronic device. In the method, a storage engine in a distributed storage system may perform a deduplication service suspending process. The storage engine may perform a fingerprint scanning process on a local Redirect-On-Write Database (ROW database) for identifying valid fingerprints in a local fingerprint table, in response to a determination that all storage engines in the distributed storage system completes the deduplication service suspending process. The storage engines may perform a fingerprint purging process for deleting invalid fingerprints from the local fingerprint table after all the storage engines completes the fingerprint scanning process; and may resume deduplication services after all the storage engines complete the fingerprint purging process.

Claims (69)

1. A method for purging data fingerprint, wherein the method is applied to a storage engine in a distributed storage system, the method comprising a fingerprint purging procedure performed by the storage engine under a synchronized control of a master node, the fingerprint purging procedure for each of the storage engines comprising:

performing a deduplication service suspending process;

performing a fingerprint scanning process on a local Redirect-On-Write (ROW) database, for identifying valid fingerprints in a local fingerprint table, in response to a determination that all storage engines in the distributed storage system complete the deduplication service suspending process;

performing a fingerprint purging process for deleting invalid fingerprints from the local fingerprint table after all the storage engines complete the fingerprint scanning process;

resuming deduplication services after all the storage engines complete the fingerprint purging process;

wherein the method further comprises: triggering the master node to instruct each of all the storage engines to perform the fingerprint purging procedure, comprising:

determining, by the storage engine, a deduplication data overwrite counting value since a last fingerprint purging procedure is performed by a node to which the storage engine belongs, and sending the deduplication data overwrite counting value to the master node;

receiving, by the master node, deduplication data overwrite counting values sent by all of the storage engines, summing up the deduplication overwrite counting values, and

triggering the master node to instruct each of all the storage engines to perform the fingerprint purging procedure in response to a determination that a sum of the deduplication overwrite counting values reaches or exceeds a preset watermark value.

2. The method of claim 1 , wherein the fingerprint scanning process for identifying valid fingerprints in the local fingerprint table comprises:

identifying a fingerprint referenced by the local ROW database as a valid fingerprint by traversing the local ROW database;

sending the identified valid fingerprint to another storage engine to which the identified valid fingerprint belongs;

receiving a plurality of valid fingerprints belonging to the storage engine; and

identifying which fingerprint among all fingerprints belonging to the storage engine is valid.

3. The method of claim 2 , wherein

the ROW database is a key-value database for persisting a redirection aggregation mapping relationship between a small I/O data write and a large I/O data write;

a fingerprint referenced by the ROW database is a referenced fingerprint in a value field of a deduplication-type.

4. The method of claim 2 , wherein identifying which fingerprint among all fingerprints belonging to the storage engine is valid comprises:

generating a fingerprint validity bitmap based on the received valid fingerprints, and

using the fingerprint validity bitmap to identify a local valid fingerprint among all fingerprints belonging to the storage engine;

wherein each binary bit in the fingerprint validity bitmap corresponds to a fingerprint that belongs to the storage engine; a fingerprint corresponding to a binary bit 1 is valid; a fingerprint corresponding to a binary bit 0 is invalid.

5. The method of claim 4 , wherein the performing a fingerprint purging process for deleting invalid fingerprints from the local fingerprint table comprises:

traversing the local fingerprint table; and

deleting each fingerprint marked as invalid corresponding to a binary bit 0 in the fingerprint validity bitmap from the local fingerprint table.

6. The method of claim 4 , wherein

prior to the generating a fingerprint validity bitmap based on the received valid fingerprints, the method further comprises:

persisting the received valid fingerprints into a fingerprint reference table, wherein the fingerprint reference table is used to recover the fingerprint validity bitmap in case of power failure.

7. The method of claim 1 , wherein

the deduplication data overwrite counting value determined by the storage engine is persisted in this storage engine in response to a determination that the deduplication data overwrite counting value determined by the storage engine reaches or exceeds an integer multiple of a preset persistence threshold value.

8. The method of claim 1 , wherein:

states of all the storage engines in the distributed storage system during performing the fingerprint purging procedure are synchronized by the master node based on a fingerprint purging state machine.

9. An electronic device, comprising:

a processor;

a communication interface;

a storage; and

a communication bus; wherein the processor, the communication interface, the storage are intercommunicated via the communication bus;

the storage is to store machine-executable instructions;

the processor is to execute the machine-executable instructions to cause a storage engine in a distributed storage system to perform a fingerprint purging procedure under a synchronized control of a master node, wherein the fingerprint purging procedure comprises operations comprising:

performing a deduplication service suspending process;

performing a fingerprint scanning process on a local Redirect-On-Write (ROW) database, for identifying valid fingerprints in a local fingerprint table, in response to a determination that all storage engines in the distributed storage system complete the deduplication service suspending process;

performing a fingerprint purging process for deleting invalid fingerprints from the local fingerprint table after all storage engines complete the fingerprint scanning process;

resuming deduplication services after all the storage engines complete the fingerprint purging process;

wherein the operations further comprise: triggering the master node to instruct each of all the storage engines to perform the fingerprint purging procedure, comprising:

determining, by the storage engine, a deduplication data overwrite counting value since a last fingerprint purging procedure is performed by a node to which the storage engine belongs, and sending the deduplication data overwrite counting value to the master node;

receiving, by the master node, deduplication data overwrite counting values sent by all of the storage engines, summing up the deduplication overwrite counting values, and

triggering the master node to instruct each of all the storage engines to perform the fingerprint purging procedure in response to a determination that a sum of the deduplication overwrite counting values reaches or exceeds a preset watermark value.

10. The electronic device of claim 9 , wherein the fingerprint scanning process for identifying valid fingerprints in the local fingerprint table comprises:

identifying a fingerprint referenced by the local ROW database as a valid fingerprint by traversing the local ROW database;

sending the identified valid fingerprint to another storage engine to which the identified valid fingerprint belongs;

receiving a plurality of valid fingerprints belonging to the storage engine; and

identifying which fingerprint among all fingerprints belonging to the storage engine is valid.

11. The electronic device of claim 10 , wherein

the ROW database is a key-value database for persisting a redirection aggregation mapping relationship between a small I/O data write and a large I/O data write;

a fingerprint referenced by the ROW database is a referenced fingerprint in a value field of a deduplication-type.

12. The electronic device of claim 10 , wherein identifying which fingerprint among all fingerprints belonging to the storage engine is valid comprises:

generating a fingerprint validity bitmap based on the received valid fingerprints, and

using the fingerprint validity bitmap to identify a local valid fingerprint among all fingerprints belonging to the storage engine;

wherein each binary bit in the fingerprint validity bitmap corresponds to a fingerprint that belongs to the storage engine; a fingerprint corresponding to a binary bit 1 is valid; a fingerprint corresponding to a binary bit 0 is invalid.

13. The electronic device of claim 12 , wherein the performing a fingerprint purging process for deleting invalid fingerprints from the local fingerprint table comprises:

traversing the local fingerprint table; and

deleting each fingerprint marked as invalid corresponding to a binary bit 0 in the fingerprint validity bitmap from the local fingerprint table.

14. The electronic device of claim 12 , wherein

prior to the generating a fingerprint validity bitmap based on the received valid fingerprints, the operations further comprise:

persisting the received valid fingerprints into a fingerprint reference table, wherein the fingerprint reference table is used to recover the fingerprint validity bitmap in case of power failure.

15. The electronic device of claim 9 , wherein

the deduplication data overwrite counting value determined by the storage engine is persisted in this storage engine in response to a determination that the deduplication data overwrite counting value determined by the storage engine reaches or exceeds an integer multiple of a preset persistence threshold value.

16. The electronic device of claim 9 , wherein:

states of all the storage engines in the distributed storage system during performing the fingerprint purging procedure are synchronized by the master node based on a fingerprint purging state machine.

17. A non-transitory machine-readable storage medium, wherein the non-transitory machine-readable storage medium stores machine-executable instructions to be invoked and executed by a processor to cause the processor to perform the method of claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2024
From: MAO, PEILIN
To: NEW H3C CLOUD TECHNOLOGIES CO., LTD.
Reel/Frame 069184/0405 →
Priority Claims (1)
CN 202311717100.1 · Dec 14, 2023 · national
Continuity (1)
Related Publication 20250200015A1 · Jun 19, 2025
References Cited (9)
US 10282256B1 · Patil · 2019 [cited by examiner]
US 11537573B2 · Ghanbari · 2022 [cited by examiner]
US 11755419B2 · Ainscow · 2023 [cited by examiner]
US 20120158670A1 · Sharma · 2012 [cited by examiner]
US 20170091232A1 · Ghanbari et al. · 2017 [cited by applicant]
US 20230086414A1 · Ghanbari · 2023 [cited by examiner]
WO 2021022274A1 · 2021 [cited by applicant]
European Patent Office, Extended European Search Report Issued in Application No. 24211497.3, Mar. 13, 2025, Germany, 10 pages. [cited by applicant]
Anonymous: “Understanding Database Snapshots”, Sep. 21, 2023 (Sep. 21, 2023), XP093255801, 10 pages. [cited by applicant]