IP Library Granted Patent US 12,222,815
Granted Patent B2
US 12,222,815 · App. 17/125,536 · Granted Feb 11, 2025

Efficient dictionary data structure to find similar backup clients

Inventors: Smriti Thakkar (San Jose, CA); Tony T. Wong (Milpitas, CA); Abhinav Duggal (Jersey City, NJ)
Assignee: EMC IP Holding Company LLC
G06F11/1453G06F11/1435G06F11/1464G06F16/174G06F18/2113G06F18/22G06F18/23
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,222,815
App. No.
17/125,536
Granted
Feb 11, 2025
Kind
B2
Abstract

One example method includes generating a fingerprint:tag dictionary that includes a group of fingerprints and a group of tags, and the fingerprint:tag dictionary identifies, for each fingerprint, the tag or tags which include that fingerprint, computing a similarity matrix based on the fingerprint:tag dictionary, and the similarity matrix identifies, for each pair of tags in the fingerprint:tag dictionary, a relative similarity of the tags in the pair to each other, running a clustering algorithm to identify groups of similar tags in the similarity matrix, and deduplicating, based on the groups of similar tags, respective data associated with the fingerprints.

Claims (32)

1. A method, comprising:

generating a fingerprint: tag dictionary that comprises a plurality of pairs, wherein each pair includes a fingerprint and a list of tags, which include the fingerprint, wherein each tag is assigned to one or more fingerprints;

computing one or more similarity matrixes based on every pair of two tags in the fingerprint:tag dictionary, wherein each similarity matrix identifies a relative similarity between a first list of fingerprints assigned to one of the two tags and a second list of fingerprints assigned to the other one of the two tags;

running a clustering algorithm to identify groups of similar tags based on the one or more similarity matrixes; and

deduplicating, based on the groups of similar tags, respective data associated with the fingerprints,

wherein at least one of the tags includes 10,000 fingerprints, which are generated by a hashing process.

2. The method as recited in claim 1 , wherein the similarity of tags in a pair comprises a Jaccard similarity measure.

3. The method as recited in claim 1 , wherein all of the similarities are determined with a single scan of the fingerprint: tag dictionary.

4. The method as recited in claim 1 , wherein computing the one or more similarity matrixes is more efficient, in terms of computational complexity, IO load, and memory usage, than calculating the similarity matrix using a brute force approach or a bloom filter approach.

5. The method as recited in claim 1 , wherein the deduplication is performed at a data storage node of a cluster.

6. The method as recited in claim 1 , wherein computing the one or more similarity matrixes comprises computing a similarity, pairwise, among tags in each pair in the fingerprint:tag dictionary.

7. The method as recited in claim 1 , wherein the fingerprints and tags in the fingerprint:tag dictionary are arranged in a plurality of entries, and each entry comprises a respective fingerprint and all the tags which include the respective fingerprint, and

computing the one or more similarity matrixes comprises reading a list of tags sequentially for a fingerprint in each pair and, for each pair, determining the similarity of all the tags in each pair.

8. The method as recited in claim 1 , wherein each tag comprises one or more respective files.

9. The method as recited in claim 1 , further comprising determining a size of one or more of the tags.

10. The method as recited in claim 1 , further comprising determining an intersection between one or more tags in each pair.

11. A non-transitory storage medium having stored therein instructions that are executable by one or more hardware processors to perform operations comprising:

generating a fingerprint: tag dictionary that comprises a plurality of pairs, wherein each pair includes a fingerprint and a list of tags, which include the fingerprint, wherein each tag is assigned to one or more fingerprints;

computing one or more similarity matrixes based on every pair of two tags the fingerprint:tag dictionary, wherein each similarity matrix identifies a relative similarity between a first list of fingerprints assigned to one of the two tags and a second list of fingerprints assigned to the other one of the two tags;

running a clustering algorithm to identify groups of similar tags based on the one or more similarity matrixes; and

deduplicating, based on the groups of similar tags, respective data associated with the fingerprints,

wherein at least one of the tags includes 10,000 fingerprints, which are generated by a hashing process.

12. The non-transitory storage medium as recited in claim 11 , wherein the similarity of tags in a pair comprises a Jaccard similarity measure.

13. The non-transitory storage medium as recited in claim 11 , wherein all of the similarities are determined with a single scan of the fingerprint: tag dictionary.

14. The non-transitory storage medium as recited in claim 11 , wherein computing the one or more similarity matrixes is more efficient, in terms of computational complexity, IO load, and memory usage, than calculating the similarity matrix using a brute force approach or a bloom filter approach.

15. The non-transitory storage medium as recited in claim 11 , wherein the deduplication is performed at a data storage node of a cluster.

16. The non-transitory storage medium as recited in claim 11 , wherein computing the one or more similarity matrixes comprises computing a similarity, pairwise, among tags in each pair in the fingerprint: tag dictionary.

17. The non-transitory storage medium as recited in claim 11 , wherein the fingerprints and tags in the fingerprint: tag dictionary are arranged in a plurality of entries, and each entry comprises a respective fingerprint and all the tags which include the respective fingerprint, and

computing the one or more similarity matrixes comprises reading a plurality of tags sequentially for a fingerprint in each pair and, for each pair, determining the similarity of all the tags in each pair.

18. The non-transitory storage medium as recited in claim 11 , wherein each tag comprises one or more respective files.

19. The non-transitory storage medium as recited in claim 11 , further comprising determining a size of one or more of the tags.

20. The non-transitory storage medium as recited in claim 11 , further comprising determining an intersection between tags in each pair.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2022
From: THAKKAR, SMRITI; WONG, TONY T.; DUGGAL, ABHINAV
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 060780/0927 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
Continuity (1)
Related Publication 20220197755A1 · Jun 23, 2022
References Cited (5)
US 10303797B1 · Menezes · 2019 [cited by examiner]
US 20190332492A1 · Marelas · 2019 [cited by examiner]
US 20200210478A1 · Wada · 2020 [cited by examiner]
US 20200233597A1 · Beskales · 2020 [cited by examiner]
S. Long, Z. Li, Z. Liu, Q. Deng, S. Oh and N. Komuro, “A similarity clustering-based deduplication strategy in cloud storage systems,” 2020 IEEE 26th International Conference on Parallel and Distributed Systems (ICPADS)… [cited by examiner]