IP Library › Granted Patent US 10,592,158
Granted Patent B1
US 10,592,158 · App. 16/174,497 · Granted Mar 17, 2020

Method and system for transferring data to a target storage system using perfect hash functions

Inventors: Ramprasad Chinthekindi (Pune, IN); Abhinav Duggal (Santa Clara, CA)
Assignee: EMC IP Holding Company LLC
G06F3/0647G06F3/0604G06F3/0683
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 10,592,158
App. No.
16/174,497
Granted
Mar 17, 2020
Kind
B1
Abstract

A method for transferring data includes populating a perfect hash bit vector (PHV) using a perfect hash function (PHF) and a target index file to obtain a populated PHV, determining required segment references using the populated PHV and received segment references, providing the required segment references to a source storage device, and receiving segments corresponding to the required segment references from the source storage device.

Claims (74)

1. A method for transferring data, comprising:

receiving a source index file from a source storage device,

wherein the source index file comprises a first plurality of segment references, and

wherein each of the first plurality of segment references corresponds to a segment stored on the source storage device;

generating a perfect hash function (PHF) using the source index file and a target index file,

wherein the target index file comprises a second plurality of segment references,

wherein each of the second plurality of segment references corresponds to a segment stored on a target storage device, and

wherein the generating the PHF comprises obtaining a union of the first plurality of segment references and the second plurality of segment references;

populating a perfect hash bit vector (PHV) using the PHF and the target index file to obtain a populated PHV;

determining required segment references using the populated PHV and received segment references;

providing the required segment references to a source storage device; and

receiving segments corresponding to the required segment references from the source storage device.

2. The method of claim 1 , wherein the populated PHV, the source index file and the target index file are stored in-memory on the target storage device.

3. The method of claim 1 , further comprising:

receiving the received segment references from the source storage device.

4. The method of claim 1 , wherein determining the required segment references using the populated PHV and the received segment references comprises:

selecting a received segment reference of the received segment references;

generating, using the PHF, a hash value for the received segment reference;

identifying a location in the populated PHV using the hash value;

making a determining that a bit value in the location is set;

based on the determination, marking the received segment reference as a required segment reference.

5. The method of claim 1 , wherein populating a perfect hash bit vector (PHV) using the perfect hash function (PHF) and the target index file to obtain the populated PHV comprises:

selecting a segment reference in the target index file;

generating, using the PHF, a hash value for the segment reference;

identifying a location in the populated PHV using the hash value;

setting a bit value in the location.

6. A system, comprising:

a processor;

memory comprising a populated perfect hash bit vector (PHV) and instructions, which when executed by the processor perform a method, the method comprising:

receiving a source index file from a source storage device,

wherein the source index file comprises a first plurality of segment references, and

wherein each of the first plurality of segment references corresponds to a segment stored on the source storage device;

generating a perfect hash function (PHF) using the source index file and a target index file,

wherein the target index file comprises a second plurality of segment references,

wherein each of the second plurality of segment references corresponds to a segment stored on a target storage device, and

wherein the generating the PHF comprises obtaining a union of the first plurality of segment references and the second plurality of segment references;

populating a perfect hash bit vector (PHV) using the PHF and the target index file to obtain a populated PHV;

determining required segment references using the populated PHV and received segment references;

providing the required segment references to a source storage device; and

receiving segments corresponding to the required segment references from the source storage device.

7. The system of claim 6 , wherein the populated PHV, the source index file and the target index file are stored in-memory on the target storage device.

8. The system of claim 6 , the method further comprising: receiving the received segment references from the source storage device.

9. The system of claim 6 , wherein determining the required segment references using the populated PHV and the received segment references comprises:

selecting a received segment reference of the received segment references;

generating, using the PHF, a hash value for the received segment reference;

identifying a location in the populated PHV using the hash value;

making a determining that a bit value in the location is set;

based on the determination, marking the received segment reference as a required segment reference.

10. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method, the method comprising:

receiving a source index file from a source storage device,

wherein the source index file comprises a first plurality of segment references, and

wherein each of the first plurality of segment references corresponds to a segment stored on the source storage device;

generating a perfect hash function (PHF) using the source index file and a target index file,

wherein the target index file comprises a second plurality of segment references,

wherein each of the second plurality of segment references corresponds to a segment stored on a target storage device, and

wherein the generating the PHF comprises obtaining a union of the first plurality of segment references and the second plurality of segment references;

populating a perfect hash bit vector (PHV) using the PHF and the target index file to obtain a populated PHV;

determining required segment references using the populated PHV and received segment references;

providing the required segment references to a source storage device; and

receiving segments corresponding to the required segment references from the source storage device.

11. The non-transitory computer readable medium of claim 10 , wherein the populated PHV, the source index file and the target index file are stored in-memory on the target storage device.

12. The non-transitory computer readable medium of claim 10 , the method further comprising:

receiving the received segment references from the source storage device.

13. The non-transitory computer readable medium of claim 10 , wherein determining required segment references using the populated PHV and received segment references comprises:

selecting a received segment reference of the received segment references;

generating, using the PHF, a hash value for the received segment reference;

identifying a location in the populated PHV using the hash value;

making a determining that a bit value in the location is set;

based on the determination, marking the received segment reference as a required segment reference.

14. The non-transitory computer readable medium of claim 10 , wherein populating a perfect hash bit vector (PHV) using the perfect hash function (PHF) and the target index file to obtain the populated PHV comprises:

selecting a segment reference in the target index file;

generating, using the PHF, a hash value for the segment reference;

identifying a location in the populated PHV using the hash value;

setting a bit value in the location.

Assignments (5)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2019
From: CHINTHEKINDI, RAMPRASAD; DUGGAL, ABHINAV
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049120/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2019
From: CHINTHEKINDI, RAMPRASAD; DUGGAL, ABHINAV
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049075/0693 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
Cited By (1)
US 12,632,411