IP Library › Granted Patent US 12,259,859
Granted Patent B2
US 12,259,859 · App. 16/911,429 · Granted Mar 25, 2025

Deduplication of data via associative similarity search

Inventors: Avidan Akerib (Tel Aviv, IL); Dan Ilan (Herzliya, IL); Eli Ehrman (Beit Shemesh, IL); Elona Erez (Tel Aviv, IL)
Assignee: GSI Technology Inc.
G06F16/215G06F16/221G06F16/24556G06F16/273G06F16/282
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,259,859
App. No.
16/911,429
Granted
Mar 25, 2025
Kind
B2
Abstract

A deduplication system includes a similarity searcher, a difference calculator, and a storage manager. The similarity searcher searches for a similar fingerprint in a database storing a plurality of local sensitive fingerprints, resembling a new fingerprint of a new block. The difference calculator computes a difference block between the input block and a similar block associated with the found similar fingerprint, and the storage manager updates the database with the new fingerprint and stores the difference block, if not empty, in a store. A method for deduplication includes searching in a database, storing a plurality of local sensitive fingerprints, a similar fingerprint, resembling a new fingerprint of a new block, calculating a difference block between the input block and a similar block associated with the similar fingerprint, if found, updating the database with the new fingerprint and storing the difference block, if it is not empty, in a storage unit.

Claims (39)

1. A deduplication system for a storage unit, the deduplication system comprising:

an associative memory device to perform associative processing and comprising a memory array having columns divided into sections, of which a fingerprint section stores a plurality of fingerprints associated with blocks of data, each fingerprint being stored in a separate column of said fingerprint section;

said associative memory device also comprising:

a similarity searcher operating on said columns to receive an input fingerprint of an input block and to perform a search inside columns of said fingerprint section for a similar fingerprint whose distance to said input fingerprint is smaller than a predetermined threshold value; and

a difference calculator operating on said columns to compute a difference block indicating relative changes between said input block and a similar block associated with said similar fingerprint, if found; and

a difference block storage manager to, if said difference block is a non-empty difference block, associate said input fingerprint with said similar block and with said difference block, store said input fingerprint in one column of said fingerprint section, and store said non-empty difference block in said storage unit,

wherein said fingerprint section is arranged in a multi-level structure wherein upper levels comprise centroids to clusters in lower levels, and a lowest level comprises fingerprints of blocks, said centroids calculated from said fingerprints.

2. The system of claim 1 wherein said storage manager to store said input block if said similar fingerprint was not found.

3. The system of claim 1 also comprising:

a fingerprint creator to create said new fingerprint using a locality-sensitive hashing (LSH) algorithm.

4. The system of claim 1 wherein said storage manager to store fingerprints of an uppermost level in said columns and wherein said similarity searcher performs said search in said uppermost level and a search in lower levels is performed in a CPU.

5. The system of claim 1 and also comprising:

a block splitter to split said input block to smaller sub-blocks;

a collision resistance fingerprint creator to create a collision resistance fingerprint for each of said sub-blocks; and

an exact searcher to search in said fingerprint section for identical fingerprints matching said collision resistance fingerprints,

said storage manager to update said fingerprint section with said collision resistance fingerprints and to store sub-blocks for which identical fingerprints were not found.

6. A method for deduplication comprising:

storing a plurality of fingerprints associated with blocks of data in a fingerprint section of an associative memory device comprising a memory array having columns divided into sections, each said fingerprint being stored in a separate column of said columns and said blocks of data being stored in a storage unit;

receiving an input fingerprint of an input block;

searching inside columns of said fingerprint section for a similar fingerprint whose distance to said input fingerprint is smaller than a predetermined threshold value;

inside said columns of said fingerprint section, calculating a difference block of relative changes between said input block and a similar block associated with said similar fingerprint, if found;

if said difference block is a non-empty difference block:

associating said input fingerprint with said similar block and with said difference block,

adding said input fingerprint in one column of said fingerprint section; and

storing said non-empty difference block in said storage unit,

wherein said fingerprint section is arranged in a multi-level structure wherein upper levels comprise centroids to clusters in lower levels, and a lowest level comprises fingerprints of blocks, said centroids calculated from said fingerprints.

7. The method of claim 6 wherein said storing also comprises storing said input block if said similar fingerprint was not found.

8. The method of claim 6 also comprising:

creating said new fingerprint using a locality-sensitive hashing (LSH) algorithm.

9. The method of claim 6 and also comprising loading fingerprints of an uppermost level into said columns and wherein said searching comprises performing a search in said uppermost level by said associative memory device and performing a search in lower levels by a CPU.

10. The method of claim 6 also comprising:

splitting said input block into smaller sub-blocks;

creating a collision resistance fingerprint for each of said sub-blocks;

performing an exact search to find an exact match to each of said collision resistance fingerprints in said fingerprint section;

updating said fingerprint section with said collision resistance fingerprints; and

storing sub-blocks for which identical fingerprints were not found.

11. The method of claim 6 also comprising:

performing an exact search between said input fingerprint and a database of fingerprints created using a collision resistance algorithm; and

perform said searching if an exact match is not found.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2021
From: AKERIB, AVIDAN; ILAN, DAN; EHRMAN, ELI; EREZ, ELONA
To: GSI TECHNOLOGY INC.
Reel/Frame 055090/0913 →
Continuity (3)
Provisional Application 62978336 · Feb 19, 2020
Provisional Application 62888580 · Aug 19, 2019
Related Publication 20210056085A1 · Feb 25, 2021
References Cited (34)
US 7065619B1 · Zhu · 2006 [cited by examiner]
US 7457813B2 · Margolus · 2008 [cited by examiner]
US 8392384B1 · Wu · 2013 [cited by examiner]
US 9256378B2 · Zheng · 2016 [cited by examiner]
US 9558812B2 · Akerib · 2017 [cited by applicant]
US 9798728B2 · Zheng · 2017 [cited by examiner]
US 9811551B1 · Colgrove · 2017 [cited by examiner]
US 10073853B2 · Aronovich · 2018 [cited by examiner]
US 10656859B2 · Jain · 2020 [cited by examiner]
US 11238106B2 · Kwan · 2022 [cited by examiner]
US 20060013451A1 · Haitsma · 2006 [cited by examiner]
US 20060112112A1 · Margolus · 2006 [cited by examiner]
US 20070071330A1 · Oostveen · 2007 [cited by examiner]
US 20080005141A1 · Zheng · 2008 [cited by examiner]
US 20130097380A1 · Colgrove · 2013 [cited by examiner]
US 20140229790A1 · Goss · 2014 [cited by examiner]
US 20140279956A1 · Trimble · 2014 [cited by examiner]
US 20150010143A1 · Yang · 2015 [cited by examiner]
US 20150019509A1 · Aronovich · 2015 [cited by examiner]
US 20150026135A1 · Aronovich · 2015 [cited by examiner]
US 20150363328A1 · Candelaria · 2015 [cited by examiner]
US 20160019232A1 · Lambright · 2016 [cited by examiner]
US 20160307021A1 · Kim · 2016 [cited by examiner]
US 20170147598A1 · Sawada · 2017 [cited by examiner]
US 20170286005A1 · Sala · 2017 [cited by examiner]
US 20180060367A1 · Ioannou · 2018 [cited by examiner]
US 20180341642A1 · Akerib · 2018 [cited by applicant]
US 20190332300A1 · Singh · 2019 [cited by examiner]
US 20200301593A1 · Vaithianathan · 2020 [cited by examiner]
US 20200364269A1 · Kwan · 2020 [cited by examiner]
US 20210365413A1 · Shilane · 2021 [cited by examiner]
US 20220107925A1 · Goswami · 2022 [cited by examiner]
US 20220114181A1 · Kwan · 2022 [cited by examiner]
US 20220121634A1 · Butcher · 2022 [cited by examiner]