IP Library Granted Patent US 12,530,321
Granted Patent B1
US 12,530,321 · App. 17/345,772 · Granted Jan 20, 2026

Consistently grouping and routing data segments for deduplication

Inventors: Philip Shilane (Newtown, PA); George Mathew (Belmont, CA); Abhinav Duggal (Santa Clara, CA)
Assignee: EMC IP Holding Company LLC
G06F16/1748G06F16/152G06F16/1724
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,530,321
App. No.
17/345,772
Granted
Jan 20, 2026
Kind
B1
Abstract

System receives data stream, groups sequential data segments associated with data stream until initial sequence of data segments is formed which is larger than minimum size. System groups sequential data segments which are next after initial sequence of data segments until next sequence of data segments is formed which combined with initial sequence of data segments is larger than maximum size. System determines feature value for each data segment in next sequence of data segments. System selects value from feature values, and data segment corresponding to selected value. System divides next sequence of data segments at selected data segment into part of initial group of data segments and part of next group of data segments. System combines part of initial group of data segments with initial sequence of data segments as initial group of data segments. System routes initial group of data segments or group of corresponding fingerprints for deduplication.

Claims (49)

1 . A system for consistently grouping and routing data segments for deduplication, comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

create a beginning part of an initial sequence of data segments by consecutively grouping sequential data segments from a stream of data until a size of the sequential data segments being grouped is larger than a minimum size, in response to receiving the stream of data;

create a next sequence of data segments by consecutively grouping sequential data segments which are next in the stream of data after the beginning part of the initial sequence of data segments until an aggregate of a size of the sequential data segments, after the beginning part of the initial sequence of data segments, being grouped and the size of the beginning part of the initial sequence of data segments is larger than a maximum size, the next sequence of data segments being distinct from the beginning part of the initial sequence of data segments

determine a feature value for each data segment in the next sequence of data segments;

select a value from the feature values, and a data segment corresponding to the selected value from the next sequence of data segments;

determine an additional feature value for at least one data segment in the next sequence of data segments;

divide the next sequence of data segments at the selected data segment into an ending part of the initial group sequence of data segments and a beginning part of the next group sequence of data segments;

combine the beginning part of the initial group sequence of data segments with the ending part of the initial sequence of data segments from the next sequence of data segments in the stream of data being routed for deduplication, the combination forming an initial group of data segments;

determine a similarity group identifier based on one of the at least one additional feature values,

route, based on the similarity group identifier, one of the initial group of data segments or a group of corresponding fingerprints for deduplication to one of a plurality of deduplication modules that are each uniquely responsible for corresponding groups of data segments associated with a range of similarity group identifiers including the determined similarity group identifier; and

deduplicate, by the one of the plurality of deduplication modules, one of the group of fingerprints or the corresponding initial group of data segments being similar to, but not identical to, the groups of data segments associated with the one of the plurality of deduplication modules.

2 . The system of claim 1 , wherein determining the feature value for each data segment of the second sequence of data segments is based on each result from applying a hash function to each data segment of the second sequence of data segments.

3 . The system of claim 2 , wherein being based on each result from applying the hash function to each data segment of the second sequence of data segments comprises selecting a series of bits from each result as each feature value.

4 . The system of claim 1 , wherein selecting the value from the feature values comprises identifying a mathematical relationship of the selected value to one of a maximal value and a minimal value of the feature values.

5 . The system of claim 1 , wherein determining the additional feature value for the at least one data segment of the second sequence of data segments is based on identifying a result from applying a hash function to the selected data segment and selecting a series of bits from the result, wherein the selected series of bits is mutually exclusive of any series of bits selected for any feature value.

6 . The system of claim 1 , wherein determining the additional feature value for the at least one data segment of the second sequence of data segments is based on each result from applying a hash function to each data segment of the second sequence of data segments, and selecting a series of bits from each result as each additional feature value, and wherein the similarity group identifier being based on one of the at least one additional feature value comprises identifying a mathematical relationship of the one of the at least one additional feature value to one of a maximal value and a minimal value of the at least one additional feature value.

7 . A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:

create a first sequence of data segments by consecutively grouping sequential data segments from a stream of data until a size of the grouped sequential data segments is larger than a minimum size;

create a second sequence of data segments by consecutively grouping sequential data segments that immediately follow the first sequence of data segments in the data stream until an aggregate of a size of the grouped sequential data segments that immediately follow the first sequence of data segments and the size of the first sequence of data segments is larger than a maximum size, the second sequence of data segments being distinct from the first sequence of data segments;

determine a feature value for each data segment in the second sequence of data segments;

select a value from the feature values, and a data segment corresponding to the selected value from the second sequence of data segments;

determine an additional feature value for at least one data segment in the next sequence of data segments;

divide the next sequence of data segments at the selected data segment into an ending part of the initial group sequence of data segments and a beginning part of the next group sequence of data segments;

combine the beginning part of the initial group sequence of data segments with the ending part of the initial sequence of data segments from the next sequence of data segments in the stream of data being routed for deduplication, the combination forming an initial group of data segments;

determine a similarity group identifier based on one of the at least one additional feature values,

route, based on the similarity group identifier, one of the initial group of data segments or a group of corresponding fingerprints for deduplication to one of a plurality of deduplication modules that are each uniquely responsible for corresponding groups of data segments associated with a range of similarity group identifiers including the determined similarity group identifier; and

deduplicate, by the one of the plurality of deduplication modules, one of the group of fingerprints or the corresponding initial group of data segments being similar to, but not identical to, the groups of data segments associated with the one of the plurality of deduplication modules.

8 . The computer program product of claim 7 , wherein determining the feature value for each data segment of the second sequence of data segments is based on each result from applying a hash function to each data segment of the second sequence of data segments.

9 . The computer program product of claim 8 , wherein being based on each result from applying the function to each data segment of the second sequence of data segments comprises selecting a series of bits from each result as each feature value.

10 . The computer program product of claim 7 , wherein selecting the value from the feature values comprises identifying a mathematical relationship of the selected value to one of a maximal value and a minimal value of the feature values.

11 . The computer program product of claim 7 , wherein determining the additional feature value for the at least one data segment of the second sequence of data segments is based on identifying a result from applying a hash function to the selected data segment and selecting a series of bits from the result, wherein the selected series of bits is mutually exclusive of any series of bits selected for any feature value.

12 . The computer program product of claim 7 , wherein determining the additional feature value for the at least one data segment of the second sequence of data segments is based on each result from applying a hash function to each data segment of the second sequence of data segments, and selecting a series of bits from each result as each additional feature value, and wherein the similarity group identifier being based on one of the at least one additional feature value comprises identifying a mathematical relationship of the one of the at least one additional feature value to one of a maximal value and a minimal value of the at least one additional feature value.

13 . A computer-implemented method for consistently grouping and routing data segments for deduplication, comprising:

creating a first sequence of data segments by consecutively grouping sequential data segments from a stream of data until a size of the grouped sequential data segments larger than a minimum size;

creating a second sequence of data segments by consecutively grouping sequential data segments that immediately follow the first sequence of data segments in the data stream until an aggregate of a size of the grouped sequential data segments that immediately follow the first sequence of data segments and the size of the first sequence of data segments is larger than a maximum size, the second sequence of data segments being distinct from the first sequence of data segments;

determining a feature value for each data segment in the second sequence of data segments;

selecting a value from the feature values, and a data segment corresponding to the selected value from the second sequence of data segments;

determining an additional feature value for at least one data segment in the next sequence of data segments;

dividing the next sequence of data segments at the selected data segment into an ending part of the initial group sequence of data segments and a beginning part of the next group sequence of data segments;

combining the beginning part of the initial group sequence of data segments with the ending part of the initial sequence of data segments from the next sequence of data segments in the stream of data being routed for deduplication, the combination forming an initial group of data segments;

determining a similarity group identifier based on one of the at least one additional feature values,

routing, based on the similarity group identifier, one of the initial group of data segments or a group of corresponding fingerprints for deduplication to one of a plurality of deduplication modules that are each uniquely responsible for corresponding groups of data segments associated with a range of similarity group identifiers including the determined similarity group identifier; and

deduplicating, by the one of the plurality of deduplication modules, one of the group of fingerprints or the corresponding initial group of data segments being similar to, but not identical to, the groups of data segments associated with the one of the plurality of deduplication modules.

14 . The computer-implemented method of claim 13 , wherein determining the feature value for each data segment of the second sequence of data segments is based on each result from applying a hash function to each data segment of the second sequence of data segments, and then selecting a series of bits from each result as each feature value.

15 . The computer-implemented method of claim 13 , wherein selecting the value from the feature values comprises identifying a mathematical relationship of the selected value to one of a maximal value and a minimal value of the feature values.

16 . The computer-implemented method of claim 13 , wherein determining the additional feature value for the at least one data segment of the second sequence of data segments is based on identifying a result from applying a hash function to the selected data segment and selecting a series of bits from the result, wherein the selected series of bits is mutually exclusive of any series of bits selected for any feature value.

17 . The computer-implemented method of claim 13 , wherein determining the additional feature value for the at least one data segment of the second sequence of data segments is based on each result from applying a hash function to each data segment of the second sequence of data segments, and selecting a series of bits from each result as each additional feature value, and wherein the similarity group identifier being based on one of the at least one additional feature value comprises identifying a mathematical relationship of the one of the at least one additional feature value to one of a maximal value and a minimal value of the at least one additional feature value.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 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 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 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 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 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 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2021
From: SHILANE, PHILIP; MATHEW, GEORGE; DUGGAL, ABHINAV
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056516/0783 →
References Cited (3)
US 9916090B1 · Can · 2018 [cited by examiner]
US 20170017407A1 · Wei · 2017 [cited by examiner]
Dong et al., “Tradeoffs in Scalable Data Routing for Deduplication Clusters,” FAST '11: Proceedings on the 9th USENIX Conference on File and Storage Technologies, Feb. 2011, available: https://www.usenix.org/legacy/even… [cited by applicant]