IP Library Granted Patent US 11,468,012
Granted Patent B2
US 11,468,012 · App. 16/805,434 · Granted Oct 11, 2022

Garbage collection assisted deduplication in a log structured file system

Inventors: Ramprasad Chinthekindi (San Jose, CA); Abhinav Duggal (Jersey City, NJ)
Assignee: EMC IP Holding Company LLC
G06F16/1748G06F11/1453G06F12/0253G06F16/137G06F2201/805G06F2212/1044
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,468,012
App. No.
16/805,434
Granted
Oct 11, 2022
Kind
B2
Abstract

A garbage collection assisted deduplication process determines whether or not data segments should be deduplicated or not based on the liveness of segment data in a region, and the number of segments subject to deduplication in the region. Ingested data is divided into a plurality of segments, and a fingerprint is calculated for each segment. An index table entry maps a fingerprint to a region and container ID, and a perfect hash vector is setup for this mapping. A percentage of live segments in the region relative to a liveness threshold is determined, as is a number of segments in the region subject to deduplication relative to a deduplication threshold. If a region is sufficiently live, deduplication is performed, but if the region is dead, deduplication is not performed. For a live region, if the number of deduplicated segments is too low, deduplication is not performed.

Claims (57)

1. A computer-implemented method of performing deduplicated backups in a computer network comprising:

performing a garbage collection process of a file system to map each data segment fingerprint to a unique bit position in a perfect hash vector (PHV), wherein each bit represents whether or not a segment is live or dead based on its binary value of 0 or 1 liveness, wherein liveness comprises a referencing of the segment by any current content of the file system;

converting the fingerprint-based PHV to a region-based vector using region identifiers for each region of a plurality of regions, and container identifiers of the segments as keys;

defining two bits per segment in the region-based vector, wherein a first bit is set to the a binary live/dead live or dead value, and a second bit indicates whether or not an ingest writes a duplicate of the segment indicating a deduplication decision of the segment;

grouping ingested data into one or more regions of the plurality of regions based on the container identifier and region identifier;

first calculating a liveness of each region to classify a corresponding region as live versus dead by determining that a percentage of live segments in the corresponding region is greater than a defined liveness threshold;

allowing a programmed deduplication operation to be performed to prevent duplicate data segments being stored, and setting the first bit to the live state binary value;

second calculating a number of deduplicated segments of each region to determine that a number of segments in the corresponding region subject to the deduplication operation is less than a defined deduplication threshold; and

overriding the allowing step to prevent the deduplication operation being performed to thereby allow duplicate data segments to be stored, and setting the second bit to a no deduplication state.

2. The method of claim 1 wherein the first calculating step comprises:

tallying a number of live segments and a number of dead segments in the corresponding region based on the fingerprint marking;

subtracting the number of dead segments from the number of live segments to obtain a difference that determines the percentage of live segments;

defining the corresponding region as dead if the difference is less than the defined liveness threshold; and

defining the corresponding region as sufficiently live if the difference is greater than or equal to the defined liveness threshold.

3. The method of claim 1 further comprising maintaining the PHV between the garbage collection process and a subsequent garbage collection process to represent region liveness of the computer network.

4. The method of claim 3 wherein the computer network comprises at least part of a deduplication backup system including a data storage server running a Data Domain file system (DDFS).

5. The method of claim 4 wherein the file system implements a log structured file system in which data and metadata are written sequentially to a log that is implemented as a circular buffer.

6. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a garbage collection assisted deduplication backup process in a computer network by which, when executed by a processor, cause the processor to perform a method to implement a garbage collection assisted deduplication backup process in a computer network, comprising:

dividing data to be stored in network storage media into a plurality of segments;

calculating a hash fingerprint for each segment of the plurality of segments;

maintaining an index table wherein each entry maps a fingerprint to a region of a plurality of regions, and a container identifier;

maintaining, in the fingerprint, a first bit indicating a liveness status of a corresponding segment, the first bit set to a live binary value or a dead binary value, and a second bit indicating a deduplication decision of the corresponding segment;

first determining, after in index lookup to the index table, that a percentage of live segments in the region is greater than a defined liveness threshold;

allowing a programmed deduplication operation to be performed to prevent duplicate data segments being stored and setting the first bit to a live state the live binary value;

second determining that a number of segments in the region subject to the deduplication operation is less than a defined deduplication threshold; and

overriding the allowing step to prevent the deduplication operation being performed to thereby allow the duplicate segments to be stored and setting the second bit to a no deduplication state

performing a garbage collection process of a file system to map each data segment fingerprint to a unique bit position in a perfect hash vector (PHV), wherein each bit represents a segment liveness, wherein liveness comprises a referencing of the segment by any current content of the file system;

converting the PHV to a region-based vector using region identifiers for each region of a plurality of regions, and container identifiers of the segments as keys;

defining two bits per segment in the region-based vector, wherein a first bit is set to a binary live or dead value, and a second bit indicating a deduplication decision of the segment;

grouping ingested data into one or more regions of the plurality of regions based on the container identifier and region identifier;

first calculating a liveness of each region to classify a corresponding region as live versus dead by determining that a percentage of live segments in the corresponding region is greater than a defined liveness threshold;

allowing a programmed deduplication operation to be performed to prevent duplicate data segments being stored, and setting the first bit to the live binary value;

second calculating a number of deduplicated segments of each region to determine that a number of segments in the corresponding region subject to the deduplication operation is less than a defined deduplication threshold; and

overriding the allowing step to prevent the deduplication operation being performed to thereby allow duplicate data segments to be stored, and setting the second bit to a no deduplication state.

7. The computer program product of claim 6 wherein the first calculating step comprises:

tallying a number of live segments and a number of dead segments in the corresponding region based on the fingerprint marking;

subtracting the number of dead segments from the number of live segments to obtain a difference that determines the percentage of live segments;

defining the corresponding region as dead if the difference is less than the defined liveness threshold; and

defining the corresponding region as sufficiently live if the difference is greater than or equal to the defined liveness threshold.

8. A system for performing deduplicated backups in a computer network comprising:

a processor comprising a garbage collection component of a file system mapping each data segment fingerprint to a unique bit position in a perfect hash vector (PHV), wherein each bit represents a segment liveness, wherein liveness comprises a referencing of the segment by any current content of the file system; and

a garbage collection assistance component of the processor:

converting the PHV to a region-based vector using region identifiers for each region of a plurality of regions, and container identifiers of the segments as keys;

defining two bits per segment in the region-based vector, wherein a first bit is set to a binary live or dead value, and a second bit indicating a deduplication decision of the segment;

grouping ingested data into one or more regions of the plurality of regions based on the container identifier and region identifier;

first calculating a liveness of each region to classify a corresponding region as live versus dead by determining that a percentage of live segments in the corresponding region is greater than a defined liveness threshold;

allowing a programmed deduplication operation to be performed to prevent duplicate data segments being stored, and setting the first bit to the live binary value;

second calculating a number of deduplicated segments of each region to determine that a number of segments in the corresponding region subject to the deduplication operation is less than a defined deduplication threshold; and

overriding the allowing step to prevent the deduplication operation being performed to thereby allow duplicate data segments to be stored, and setting the second bit to a no deduplication state.

9. The system of claim 8 wherein the first calculating comprises:

tallying a number of live segments and a number of dead segments in the corresponding region based on the fingerprint marking;

subtracting the number of dead segments from the number of live segments to obtain a difference that determines the percentage of live segments;

defining the corresponding region as dead if the difference is less than the defined liveness threshold; and

defining the corresponding region as sufficiently live if the difference is greater than or equal to the defined liveness threshold.

10. The system of claim 8 wherein the garbage collection assistance component further maintains the PHV between the garbage collection process and a subsequent garbage collection process to represent region liveness of the computer network.

11. The system of claim 8 wherein the computer network comprises at least part of a deduplication backup system including a data storage server running a Data Domain file system (DDFS).

12. The system of claim 11 wherein the file system implements a log structured file system in which data and metadata are written sequentially to a log that is implemented as a circular buffer.

Assignments (13)
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 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 (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 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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2020
From: CHINTHEKINDI, RAMPRASAD; DUGGAL, ABHINAV
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053413/0590 →
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 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
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
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 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 →
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 →
Continuity (1)
Related Publication 20210271644A1 · Sep 2, 2021
Cited By (1)
US 12,596,492